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的更多相关文章

  1. hdu 3579 Hello Kiki (中国剩余定理)

    Hello Kiki Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  2. HDU 2147 kiki's game(博弈)

    kiki's game Time Limit: 1000MS   Memory Limit: 10000KB   64bit IO Format: %I64d & %I64u Submit S ...

  3. 周赛-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 ...

  4. HDU 2147 kiki's game (简单博弈,找规律)

    kiki's game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 40000/1000 K (Java/Others)Total ...

  5. hdoj 2147 kiki's game【博弈】

    kiki's game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 40000/10000 K (Java/Others)Total ...

  6. kiki's game

    欢迎参加——BestCoder周年纪念赛(高质量题目+多重奖励) kiki's game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: ...

  7. NYOJ 300 &amp;&amp; hdu 2276 Kiki &amp; Little Kiki 2 (矩阵高速功率)

    pid=300">Kiki & Little Kiki 2 时间限制:5000 ms  |  内存限制:65535 KB 难度:4 描写叙述 There are n light ...

  8. Hello Kiki(中国剩余定理——不互质的情况)

    Hello Kiki Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  9. KiKi's K-Number

    KiKi's K-Number Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...

随机推荐

  1. shell脚本 批量查看mysql表条目数

    一.简介 源码地址 日期:2018/4/12 介绍:查看mysql的信息,用于比对和查询条目数 效果图: 二.使用 适用:centos6+ 语言:中文 注意:适用于5.7版本,其它版本要更改变量han ...

  2. Python的安装和卸载

    一.Python的安装,去Python官网https://www.python.org/downloads/下载对应安装包 进入官网后鼠标移动到downloads处然后点击Windows 二.安装包下 ...

  3. STL 较详尽总结

    STL就是Standard Template Library,标准模板库.这可能是一个历史上最令人兴奋的工具的最无聊的术语.从根本上说,STL是一些"容器"的集合,这些" ...

  4. N1BOOK——[第五章 CTF之RE章]wp

    推荐在了解了相应章节的内容后再来练习,你会觉得顿时悟了 记录一下自己的解题过程 2,3,4题目附件来源:https://book.nu1l.com/tasks/#/pages/reverse/5.4 ...

  5. 利用模块加载回调函数修改PE导入表实现注入

    最近整理PE文件相关代码的时候,想到如果能在PE刚刚读进内存的时候再去修改内存PE镜像,那不是比直接对PE文件进行操作隐秘多了么? PE文件在运行时会根据导入表来进行dll库的"动态链接&q ...

  6. 预算(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 预算是件重要的事,不然银几一花没边了,那结果可是要牺牺的(以下省略具体描述9^323字) 在Project里做预算,步骤不 ...

  7. JAVA使用多线程进行数据处理

    import org.apache.commons.collections.CollectionUtils; import org.slf4j.Logger; import org.slf4j.Log ...

  8. 使用WebUploader进行文件图片上传

    官方文档:http://fex.baidu.com/webuploader/getting-started.html 引入Webuploader的css和js文件,下载地址:http://fex.ba ...

  9. 【LeetCode】919. Complete Binary Tree Inserter 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址: https://leetcode. ...

  10. 【LeetCode】593. Valid Square 解题报告(Python)

    [LeetCode]593. Valid Square 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地 ...