HDOJ3579Hello Kiki
https://acm.hdu.edu.cn/showproblem.php?pid=3579
一些坑点。首先是如果说最后求得到的结果为0,那么在数学意义上这是正确的,0对于任何的确是最小的整数解,但实际意义正整数就并非如此了,如果为0,那么下一个最小解为最小公倍数。
一个技巧,先除再乘防止爆炸。
1 #include<bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 ll ncases,n,x,y;
5 const int N=52;
6 ll m[N],r[N];
7 ll ex_gcd(ll a,ll b,ll &x,ll &y)
8 {
9 if(!b) {x=1,y=0;return a;}
10 ll d=ex_gcd(b,a%b,x,y);
11 ll tmp=x;
12 x=y;y=tmp-a/b*y;
13 return d;
14 }
15 int main()
16 {
17 ll a,b,c,a1,b1,a2,b2,num=0;
18 scanf("%lld",&ncases);
19 while(ncases--)
20 {
21 num++;
22 scanf("%lld",&n);
23 printf("Case %lld: ",num);
24 for(int i=1;i<=n;i++) scanf("%lld",&m[i]);
25 for(int i=1;i<=n;i++) scanf("%lld",&r[i]);
26 a1=m[1],b1=r[1];
27 bool flag=true;
28 for(int i=2;i<=n;i++)
29 {
30 a2=m[i],b2=r[i];
31 a=a1,b=a2,c=b2-b1;
32 ll d=ex_gcd(a,b,x,y);
33 if(c%d){cout<<-1<<'\n';flag=false;break;}
34 ll t=b/d;
35 x=(x*(c/d)%t+t)%t;//先除防止爆炸
36 b1=a1*x+b1;
37 a1=a1*(a2/d);
38 }
39 if(flag) printf("%lld\n",(b1==0?a1:b1));
40 }
41 return 0;
42 }
HDOJ3579Hello Kiki的更多相关文章
- hdu 3579 Hello Kiki (中国剩余定理)
		Hello Kiki Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ... 
- HDU 2147 kiki's game(博弈)
		kiki's game Time Limit: 1000MS Memory Limit: 10000KB 64bit IO Format: %I64d & %I64u Submit S ... 
- 周赛-kiki's game                                                       分类:            比赛             2015-08-02 09:24    7人阅读    评论(0)    收藏
		kiki's game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 40000/10000 K (Java/Others) Total S ... 
- HDU 2147 kiki's game (简单博弈,找规律)
		kiki's game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 40000/1000 K (Java/Others)Total ... 
- hdoj 2147 kiki's game【博弈】
		kiki's game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 40000/10000 K (Java/Others)Total ... 
- kiki's game
		欢迎参加——BestCoder周年纪念赛(高质量题目+多重奖励) kiki's game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: ... 
- NYOJ 300 && hdu 2276  Kiki & Little Kiki 2 (矩阵高速功率)
		pid=300">Kiki & Little Kiki 2 时间限制:5000 ms | 内存限制:65535 KB 难度:4 描写叙述 There are n light ... 
- Hello Kiki(中国剩余定理——不互质的情况)
		Hello Kiki Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ... 
- KiKi's K-Number
		KiKi's K-Number Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ... 
随机推荐
- 去除爬虫采集到的\xa0、\u3000等字符
			\xa0表示不间断空白符,爬虫中遇到它的概率不可谓不小,而经常和它一同出现的还有\u3000.\u2800.\t等Unicode字符串.单从对\xa0.\t.\u3000等含空白字符的处理来说,有以下 ... 
- Go - 如何编写 ProtoBuf 插件(二)?
			目录 前言 定义插件 使用插件 获取自定义选项 小结 推荐阅读 前言 上篇文章<Go - 如何编写 ProtoBuf 插件 (一) >,分享了使用 proto3 的 自定义选项 可以实现插 ... 
- AT5341 [ABC156D] Bouquet 题解
			Content 有一个人有 \(n\) 种不同的话可供选择,TA 可以选择至少一种花做花束,但是 TA 不喜欢花的种数为 \(a\) 或者 \(b\) 的花束.求选花的方案数对 \(10^9+7\) ... 
- git 修改东西之后提交命令
			1.git add * 添加东西 2.git status 查看要提交的东西 3.git commit -m "已经修改LogController文件" 提交 4.pwd 看当前目 ... 
- JAVA整合FlinkCDC 监控数据库表变化
			版本至少jdk8 maven <!-- https://mvnrepository.com/artifact/com.alibaba.ververica/flink-connector-mysq ... 
- MFC之实现无边窗口移动
			说明 演示环境: Vs2015 + MFC 基于对话框程序 效果图 方法1 注意: 此方法存在缺陷: 无法响应LButtonUp消息 添加消息处理函数 函数代码 void CMFCApplicatio ... 
- sigslot之简化版
			1.关于 1.1 基于原版sigslot做了部分修改.原版的信号支持最多支持8个参数,改进后,最多支持1个参数,这样肯定不能满足日常需求,但是,我们可以将信号的一个参数改为类型指针,比如信号定义时的模 ... 
- 【LeetCode】1410. 实体解析器 HTML Entity Parser HTML
			作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 替换 日期 题目地址:https://leetcode ... 
- 【LeetCode】826. Most Profit Assigning Work 解题报告(Python)
			作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/most-pro ... 
- 【LeetCode】594. Longest Harmonious Subsequence 解题报告(Python & C++)
			作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 统计次数 日期 题目地址:https://leetc ... 
