【2014acm西安现场赛】K
来源:互联网 发布:软件测试简单吗 编辑:程序博客网 时间:2024/05/17 01:07
题目链接:
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5057
题目大意:
给定数列S的首两项,要求之后的各项满足Si= |Si−1 − Si−2|(前两项差值的绝对值)。问整个数列S中不同的数字个数
解题思路:
首先容易发现,当i足够大时,最后一定会出现“xx0xx0...”这样的重复。所以不同数字个数一定是有限的
究其原因,对于数y和x,y一定能写成kx+b的形式,在数列的生成过程中,会出现kx+b、x、(k-1)x+b、(k-2)x+b、x、...、2x+b、x、x+b、b、x,其中出现的不同数字个数就是(kx+b)/ x,之后问题变成了数x和b的问题,最后可以发现这就是一个辗转相除法的过程。每做一次辗转相除gcd(x,y),不同数字个数就多了x/ y
还有一些特殊情况需要考虑,比如有数字是0
#include<bits/stdc++.h>using namespace std;int main(){// freopen("data.txt","r",stdin); // freopen("out.txt","w",stdout); int T; unsigned long long a,b,t,ans; cin>>T; for(int i=1;i<=T;i++){ cin>>a>>b; // cout<<a<<" "<<b<<endl; printf("Case #%d: ",i); if (a==b) { if (a==0) printf("1\n"); else printf("2\n"); continue; } ans=2; if (a<b) swap(a,b); if (b==0) {printf("2\n");continue;} while(b!=0){ ans+=a/b; a%=b; swap(a,b); } cout<<ans-1<<endl; } return 0;}
阅读全文
0 0
- 【2014acm西安现场赛】K
- 【2014acm西安现场赛】A
- 【2014acm西安现场赛】F
- CF GYM 100548 Last Defence(2014ACM西安现场赛Problem K)
- 2014 ACM区域赛 西安赛区现场赛总结
- 小记2014西安现场赛
- 2014 ACM-ICPC牡丹江现场赛K题题解
- 2014ACM/ICPC亚洲区西安站现场赛 F color(转换角度+容斥)
- CF GYM 100548 International Collegiate Routing Contest(2014ACM西安现场赛Problem I)
- CF GYM 100548 Color(2014ACM西安现场赛Problem F)
- CF GYM 100548 Color(2014ACM西安现场赛Problem F)
- 2017ICPC/ACM亚洲赛区西安站现场赛 总结
- hdu5073 -- 贪心(2014西安现场赛)
- 2014 icpc 西安现场赛 I
- HDU-5122-K.Bro Sorting (2014ACM/ICPC北京赛区现场赛K题!)
- CF GYM 100548 Built with Qinghuai and Ari Factor(2014ACM西安现场赛Problem A)
- CF GYM 100548 The Problem Needs 3D Arrays(2014ACM西安现场赛Problem C)
- CF GYM 100548 The Problem to Make You Happy(2014ACM西安现场赛Problem H)
- 51nod 1318 最大公约数与最小公倍数方程组
- 【Nginx+Keepalived】组建高可用负载平衡Web server集群
- C和C++中标准输入中遇到的问题
- Educational Codeforces Round 28 题解
- 【DFS】NOIP2014Day1T2[联合权值]题解
- 【2014acm西安现场赛】K
- <Android 进阶(二)> 自定义View之Dota2能力雷达图
- 算法设计 第二次上机 Subway
- SQL中 % ,_,【】,【^】通配符的的使用
- 董付国老师6本Python系列图书阅读指南
- [xor最小生成树 分治 字典树合并] BNUOJ52318 Be Friends
- Windows环境下nDPI编译调试
- 如何用3升和5升桶量取4升水?
- python基础(3) 匿名函数和文件处理、异常