HDU 3579
标准同余方程组,只是在求出值后如果为0,应该输出Mi的Lcm;
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
typedef long long LL;
LL Ai[50],Ri[50];
LL gcd(LL a, LL b)
{
return b ? gcd(b,a%b) : a;
}
void Exgcd(LL a,LL b,LL& d,LL& x,LL& y)
{
if(b == 0) { d = a; x = 1; y = 0;}
else { Exgcd(b,a%b,d,y,x); y -= x*(a/b); }
}
LL ModN(LL* Ai,LL* Ri,LL n)
{
LL a1 = Ai[1], r1 = Ri[1];
LL X,Y,D;
bool Jug = true;
for(LL i = 2; i <= n; ++i)
{
//if(Jug == false) break;
LL a = a1, b = Ai[i], c = Ri[i] - r1;
Exgcd(a,b,D,X,Y);
if(c % D)
{
Jug = false;
return -1;
}
LL t = b / D;
X = (X * (c / D) % t + t) % t;
r1 += a1 * X;
a1 *= Ai[i] / D;
}
return r1;
}
int main()
{
int t;
LL N;
int Case = 1;
cin >> t;
while(t --)
{
cin >> N;
for(int i = 1; i <= N; ++i)
cin >> Ai[i];
for(int i = 1; i <= N; ++i)
cin >> Ri[i];
LL ans = ModN(Ai,Ri,N);
printf("Case %d: ",Case++);
if(ans == -1) cout << "-1\n";
else if(ans != 0) cout << ans << endl;
else {
LL Lcm = 1;
for(int i = 1; i <= N; ++i)
Lcm = Lcm / gcd(Lcm,Ai[i]) * Ai[i];
cout << Lcm << endl;
}
}
}
HDU 3579的更多相关文章
- 中国剩余定理 hdu 3579
HDU 3579 Hello Kiki Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- hdu 3579 Hello Kiki
不互质的中国剩余定理…… 链接http://acm.hdu.edu.cn/showproblem.php?pid=3579 #include<iostream>#include<st ...
- HDU 3579——Hello Kiki
好久没写什么数论,同余之类的东西了. 昨天第一次用了剩余定理解题,今天上百度搜了一下hdu中国剩余定理.于是就发现了这个题目. 题目的意思很简单.就是告诉你n个m[i],和n个a[i].表示一个数对m ...
- 一些关于中国剩余定理的数论题(POJ 2891/HDU 3579/HDU 1573/HDU 1930)
2891 -- Strange Way to Express Integers import java.math.BigInteger; import java.util.Scanner; publi ...
- hdu 3579 Hello Kiki (中国剩余定理)
Hello Kiki Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- hdu 3579 Hello Kiki【中国剩余定理】(模数不要求互素)(模板题)
<题目链接> 题目大意: 给你一些模数和余数,让你求出满足这些要求的最小的数的值. 解题分析: 中国剩余定理(模数不一定互质)模板题 #include<stdio.h> usi ...
- hdu 3579 Hello Kiki 不互质的中国剩余定理
Hello Kiki Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Probl ...
- hdu 3579(中国剩余定理+考虑0)
Hello Kiki Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- HDU——3579 Hello Kiki
Hello Kiki Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
随机推荐
- 洛谷P4145 上帝造题的⑦minutes ②
又是线段树. 区间开平方求和,套路题. 如果开到了1就不用再开下去了,否则直接到底. 记得 l > r 时交换 l r #include <cstdio> #include < ...
- 洛谷P1135 奇怪的电梯 BFS例题
好,这是一道黄题.几个月前(2017.10.29)的我拿了可怜的20分. 这是当年的蒟蒻代码 #include <cstdio> #include <iostream> #in ...
- typescript泛型(学习笔记非干货)
软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性. 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型, 这在创建大型系统时为你提供了十分灵活的功能. In softwa ...
- javascript面向对象精要第五章继承整理精要
javascript中使用原型链支持继承,当一个对象的[prototype]设置为另一个对象时, 就在这两个对象之间创建了一条原型对象链.如果要创建一个继承自其它对象的对象, 使用Object.cre ...
- VS2010程序崩溃,报错Unhandled exception at **.exe:0xC0000005: Access violation reading location 0x000000008899.
最近被派到另外一个组支援,从而从Linux下开发暂转到Windows下开发,个人觉得Windows自己搞的一套并不那么完美,坑多. 网文可能出现的原因: 未处理的异常: 0xC0000005: 读取位 ...
- linux command ------ find
find | grep luoluo 将当前目录及子目录的文件名中含有luoluo的文件过滤出来 | 是管道,把find查找的内容传递给下个命令(grep) find后面不加其他内容(比如路径)表示打 ...
- toogle
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- MUI 自定义从底部弹出的弹出框
1)效果: 点击“点击就送”那个按钮之后,弹窗从底部弹出并自带蒙层,然后点击弹窗之外的灰色部分就从底部消失: 第一步:引入 mui.css或者mui.min.css 引入 mui.min.js或者mu ...
- Java_myBatis_一对多映射
例如我们有需求需要实现以下查询 "一个用户对多条订单编号": select user.*,o.number,o.createtime from user left JOIN or ...
- SQL 对大小写不敏感!
一定要记住,SQL 对大小写不敏感!