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 ...
随机推荐
- Wireshark基本使用(1)
原文出处: EMC中文支持论坛 按照国际惯例,从最基本的说起. 抓取报文: 下载和安装好Wireshark之后,启动Wireshark并且在接口列表中选择接口名,然后开始在此接口上抓包.例如,如果想要 ...
- 从 CPython 源码角度看 Python 垃圾回收机制
环状双向链表 refchain 在 Python 程序中创建的任何对象都会被放到 refchain 链表中,当创建一个 Python 对象时,内部实际上创建了一些基本的数据: 上一个对象 下一个对象 ...
- 爆款预订,2022 年最值得关注的后台框架 —— Fantastic-admin
前言 如果 2021 年你还没有听说过 Fantastic-admin ,那即将到来的 2022 年可不要再错过了. Fantastic-admin 做为一款开箱即用的 Vue 中后台管理系统框架,距 ...
- MySQL、Oracle元数据抽取分析
最近接到个任务是抽取mysql和Oracle的元数据,大致就是在库里把库.schema.表.字段.分区.索引.主键等信息抽取出来,然后导成excel. 因为刚开始接触元数据,对这个并不了解,就想借助一 ...
- Shell之awk常用用法
- JAVA判断是否是Ajax请求
/** * 是否是Ajax异步请求 * * @param request */ public static boolean isAjaxRequest(HttpServletRequest reque ...
- 【九度OJ】题目1163:素数 解题报告
[九度OJ]题目1163:素数 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1163 题目描述: 输入一个整数n(2< ...
- 【LeetCode】382. Linked List Random Node 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 数组保存再随机选择 蓄水池抽样 日期 题目地址:ht ...
- 最大流问题的Ford-Fulkerson模板
详细讲解:http://blog.csdn.net/smartxxyx/article/details/9293665 下面贴上我的第一道最大流的题: hdu3549 1 #include<st ...
- Doing Homework(hdu)1074
Doing Homework Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...