HDU 3579 线性同余方程组
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; const int MaxM=11; int a[MaxM],b[MaxM]; void exgcd(int a,int b,int &d,int &x,int &y){
if(b==0){
x=1; y=0;
d=a;
}
else{
exgcd(b,a%b,d,x,y);
int tmp=x;
x=y;
y=tmp-(a/b)*y;
}
} int gcd(int a,int b){
if(b==0) return a;
return gcd(b,a%b);
} int main(){
int t; int a1,r1,a2,r2; int aa,bb,cc,dd; int x,y; int g;
scanf("%d",&t);
int n,m;
bool ifhave;
int kase=0;
while(t--){
kase++;
scanf("%d",&m);
g=1;
for(int i=0;i<m;i++){
scanf("%d",&a[i]);
if(i==0){ g=a[i]; continue; }
g=g*a[i]/gcd(g,a[i]);
}
for(int i=0;i<m;i++)
scanf("%d",&b[i]);
a1=a[0]; r1=b[0];
ifhave=true;
for(int i=1;i<m;i++){
a2=a[i]; r2=b[i];
aa=a1; bb=a2; cc=r2-r1;
exgcd(aa,bb,dd,x,y);
if(cc%dd!=0){
ifhave=false;
break;
}
int t=bb/dd;
x=(x*(cc/dd)%t+t)%t;
r1=a1*x+r1;
a1=a1*(a2/dd);
}
printf("Case %d: ",kase);
if(!ifhave)
printf("-1\n");
else{
if(r1==0)
printf("%d\n",g);
else printf("%d\n",r1);
}
}
return 0;
}
HDU 3579 线性同余方程组的更多相关文章
- hdu1573:数论,线性同余方程组
题目大意: 给定一个N ,m 找到小于N的 对于i=1....m,满足 x mod ai=bi 的 x 的数量. 分析 先求出 同余方程组 的最小解x0,然后 每增加lcm(a1...,am)都 ...
- 【poj2891-Strange Way to Express Integers】拓展欧几里得-同余方程组
http://poj.org/problem?id=2891 题意:与中国剩余定理不同,p%ai=bi,此处的ai(i=1 2 3 ……)是不一定互质的,所以要用到的是同余方程组,在网上看到有人称为拓 ...
- 【poj2891】同余方程组
同余方程组 例题1:pku2891Strange Way to Express Integers 中国剩余定理求的同余方程组mod 的数是两两互素的.然而本题(一般情况,也包括两两互素的情况,所以中国 ...
- 解密随机数生成器(二)——从java源码看线性同余算法
Random Java中的Random类生成的是伪随机数,使用的是48-bit的种子,然后调用一个linear congruential formula线性同余方程(Donald Knuth的编程艺术 ...
- HDU 3579
标准同余方程组,只是在求出值后如果为0,应该输出Mi的Lcm: #include<iostream> #include<cstdio> #include<cstring& ...
- python3 线性同余发生器 ( random 随机数生成器 ) 伪随机数产生周期的一些探究
import random x=[str(random.randint(0, 5)) for i in range(10)] x_str=''.join(x) y=[str(random.randin ...
- 中国剩余定理 hdu 3579
HDU 3579 Hello Kiki Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- poj2891 Strange Way to Express Integers poj1006 Biorhythms 同余方程组
怎样求同余方程组?如: \[\begin{cases} x \equiv a_1 \pmod {m_1} \\ x \equiv a_2 \pmod {m_2} \\ \cdots \\ x \equ ...
- HDU 4686 Arc of Dream 矩阵快速幂,线性同余 难度:1
http://acm.hdu.edu.cn/showproblem.php?pid=4686 当看到n为小于64位整数的数字时,就应该有个感觉,acm范畴内这应该是道矩阵快速幂 Ai,Bi的递推式题目 ...
随机推荐
- 关于ssh加密方式的理解
最近公司服务器被挖矿,所以更换了ssh的连接方式,从之前的密码登陆更换为密钥登陆方式,且禁止了密码登陆.所以在配置这个密钥的过程中,顺带了解了些ssh的原理和相关知识.通用的开源 1.ssh是什么,为 ...
- 学习笔记:javascript中的Generator函数
最近在学习redux-saga,由于redux-saga需要使用Generator函数,所以下来就回顾了一下Generator Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为 ...
- 前端之HEML
HTML介绍 Web服务本质 import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen ...
- BZOJ 1485 卡特兰数 数学
思路: 通过打表观察 这是个卡特兰数 但是它mod的数不是质数 怎么办呢 把所有数分解质因数好了 线性筛出mindiv 顺着mindiv分解质因数 复杂度$O(nlogn)$ //By Sirius ...
- c# 异步任务队列(可选是否使用单线程执行任务,以及自动取消任务)
使用demo,(.net framework 4.0 自行添加async wait 扩展库) class Program { static void Main(string[] args) { Con ...
- 转载:关于 python ImportError: No module named 的问题
关于 python ImportError: No module named 的问题 今天在 centos 下安装 python setup.py install 时报错:ImportError: N ...
- Docker的特性解析
Docker简介与入门:http://segmentfault.com/blog/p_chou/1190000000448808 Docker是个新生的事物,概念类似虚拟化.网上关于Docker入门的 ...
- 统计之都 http://cos.name/
http://cos.name/ IMS:一个洲际人际交流网络(为学生免费提供会员资格) 原文链接:http://cos.name/2014/07/ims-a-cross-continent-huma ...
- (转)基于MVC4+EasyUI的Web开发框架经验总结(3)- 使用Json实体类构建菜单数据
http://www.cnblogs.com/wuhuacong/p/3669708.html 最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开 ...
- Jquery 研究 入口
<script type="text/javascript"> //var jQuery = function () { // console.log(jQuery.f ...