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的递推式题目 ...
随机推荐
- luogu2766 最长不下降子序列问题 DP 网络流
题目大意:给定正整数序列x1,...,xn .(1)计算其最长不下降子序列的长度s.(不一定是否连续)(2)计算从给定的序列中最多可取出多少个长度为s的不下降子序列.(序列内每一个元素不可重复)(3) ...
- hdoj--1598--find the most comfortable road
find the most comfortable road Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- MySQL-TokuDB:MySQL 高性能存储引擎:TokuDB
ylbtech-MySQL-TokuDB:MySQL 高性能存储引擎:TokuDB 1.返回顶部 1. 在安装MariaDB的时候了解到代替InnoDB的TokuDB,看简介非常的棒,这里对ToduD ...
- linux 添加 msyql 开机自启动
1.将服务文件拷贝到init.d下,并重命名为mysql cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 2.赋予可 ...
- 移动端的click事件延迟触发的原理是什么?如何解决这个问题?
移动端的click事件延迟触发的原理是什么?如何解决这个问题? 原理 :移动端屏幕双击会缩放页面 300ms延迟 会出现点透现象 在列表页面上创建一个弹出层,弹出层有个关闭的按钮,你点了这个按钮关闭弹 ...
- Python 之 风格规范(Google )
开头先mark一下网址:goole官网 任何语言的程序员,编写出符合规范的代码,是开始程序生涯的第一步. 一.分号 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 二.行长度 每行不超过80个 ...
- datetime is null
本文转载自阿单<datetime is null> datetime 以'YYYY-MM-DD HH:MM:SS'格式检索和显示DATETIME值同时当datetime 为 null时 ...
- in 与 exist , not in 与 not exist
in和exists in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询.一直以来认为exists比in效率高的说法是不准确的. 如果查询的两个 ...
- IIS网站调用FFMPEG执行截图命令失败的原因(暂时记录)
之前有个功能是用户上传视频后,网站对其进行截图处理.功能采用FFMPEG操作,在本机新建一个小程序进行调试时是没有问题的. 可功能原封不动挪到项目里,截图竟然失败了,于是开始排查. 期初以为是参数设置 ...
- VS命令行的使用
CD 命令是改变当前路径,但是它不会改变当前盘符,改变盘符要输入 [盘符]: 命令. 如下: Setting environment for using Microsoft Visual Studio ...