hdu 5584 gcd/lcm/数学公式
input
T 1<=T<=1000
x y
output
有多少个起点可以走n(n>=0)步走到(x,y),只能从(x,y)走到(x,y+lcm(x,y))/(x+lcm(x,y),y)
标准解:从(x,y0)走到(x,y),则设x=ag,y0=bg,g=gcd(x,y0),有y=bg+abg=(a+1)bg,因为a,b互质,a,(a+1)互质,所以a和(a+1)b互质,所以若可以从(x,y0)走到(x,y),有gcd(x,y0)=gcd(x,y),然后将x和y中gcd(x,y)除去之后不断除以(x+1)即可
1 #include <iostream> 2 #include <cstdio> 3 #include <set> 4 #include <algorithm> 5 6 using namespace std; 7 8 typedef long long LL; 9 10 //求最大公约数 11 LL gcd(LL a, LL b) { if(!b) return a; else return gcd(b,a%b); } 12 13 int main() 14 { 15 int t,Case = 0; 16 scanf("%d",&t); 17 while(t--) 18 { 19 LL ex,ey; //终点坐标 20 21 scanf("%lld%lld",&ex,&ey); 22 LL GCD = gcd(ex,ey); 23 ex/=GCD,ey /=GCD; 24 int ans = 0; 25 while(1) 26 { 27 if(ey < ex) swap(ex,ey); 28 ans++; 29 if(ey % (ex+1)) break; 30 ey /= (ex+1); 31 } 32 33 printf("Case #%d: %d\n",++Case,ans); 34 } 35 }
answer
1 #include <cstdio> 2 #include <queue> 3 #include <cstring> 4 #include <iostream> 5 #include <cstdlib> 6 #include <algorithm> 7 #include <vector> 8 #include <map> 9 #include <set> 10 #include <ctime> 11 #include <cmath> 12 #include <cctype> 13 #define MAX 100000 14 #define LL long long 15 int cas=1,T,x,y,d[1000],dn; 16 void find(int x,int *d,int& dn) 17 { 18 dn=-1; 19 int m=sqrt(x); 20 for(int i=1;i<=m;i++) if(x%i==0) d[++dn]=i; 21 for(int i=dn;i>=0;i--) d[++dn]=x/d[i]; 22 } 23 int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } 24 int main() 25 { 26 // freopen("in","r",stdin); 27 scanf("%d",&T); 28 while(T--) 29 { 30 scanf("%d%d",&x,&y); 31 int step=1,flag=1; 32 while(flag&&x!=y) 33 { 34 flag=0; 35 if(x>y) std::swap(x,y); 36 int g=gcd(x,y); 37 find(g,d,dn); 38 for(int i=dn;i>=0;i--) 39 { 40 if(y%(d[i]+x)==0) 41 { 42 int y1=y/(d[i]+x)*d[i]; 43 if(gcd(x,y1)==d[i]) { y=y1;step++;flag=1;break; } 44 } 45 } 46 } 47 printf("Case #%d: %d\n",cas++,step); 48 } 49 //printf("time=%.3lf",(double)clock()/CLOCKS_PER_SEC); 50 return 0; 51 }
My Code
转载于:https://www.cnblogs.com/cdyboke/p/5051192.html
hdu 5584 gcd/lcm/数学公式相关推荐
- HDU - 4497 GCD and LCM
题意:给出三个数的gcd,lcm,求这三个数的全部的可能 思路 :设x,y,z的gcd为d,那么设x=d*a,y=d*b,z=d*c.a,b.c肯定是互质的.那么lcm=d*a*b*c,所以我们能够得 ...
- hdu-3071 Gcd Lcm game---质因数分解+状态压缩+线段树
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3071 题目大意: 给定一个长度为n的序列m次操作,操作的种类一共有三种 查询 L :查询一个区间的所 ...
- UVa 11388 - GCD LCM
题目大意:给出两个数的最大公约数G和最小公倍数L,求出这两个数. 根据a*b = GCD * LCM,然后枚举判断就好了. 1 #include <cstdio> 2 typedef un ...
- GCD and LCM Aizu - 0005(辗转相除)+GCD LCM Inverse POJ - 2429(java或【Miller Rabin素数測试】+【Pollar Rho整数分解】)
题目:GCD and LCM Aizu - 0005 Write a program which computes the greatest common divisor (GCD) and the ...
- POJ 2429 GCD LCM Inverse
设答案为ans1,ans2 ans1=a1*gcd,ans2=a2*gcd,a1,a2互质 gcd*a1*b1=lcm,gcd*a2*b2=lcm a1*b1=lcm=(ans1*ans2)/gcd= ...
- POJ2429 GCDLCM Inverse(整数分解,由GCD+LCM求a,b)
POJ2429 GCD&LCM Inverse(整数分解,由GCD+LCM求a,b) 分类: 数论 2013-02-12 22:00 180人阅读 评论(1) 收藏 举报 题目:GCD ...
- HDU - 相遇周期(gcd,lcm)
HDU - 相遇周期 而卫星是进行这些探测的重要工具,我们的问题是已知两颗卫星的运行周期,求它们的相遇周期. Input 输入数据的第一行为一个正整数T, 表示测试数据的组数. 然后是T组测试数据. ...
- HDU - 4497 GCD and LCM 数论gcd
传送门 文章目录 题意: 思路: 题意: 给三个数的lcmlcmlcm和gcdgcdgcd,求满足条件的三元组组合个数. 思路: 首先lcmmodgcd==0lcm\bmod gcd==0lcmmod ...
- hdu 4497 GCD and LCM
题目意思: 给你三个数的最大公约数G,最小公倍数L,求这样的三位数有多少个. 解: 1 首先如果 L%G!=0 那很明显无解 输出0 2 如果L%G==0 然后 令L=L/G ,G=1 ...
最新文章
- Navicat for Oracle工具连接oracle
- Unity iPhone Touch Animation Tutorial,untiy3d iphone简单动画开发教程
- Xamarin XAML语言教程隐藏文件使用Progress属性设置进度条
- python编程100例头条-我用Python编程语言做了一些神奇好玩的事情
- 【arduino】DIY音乐播放器,arduino播放wav音乐,TRMpcm库测试及使用
- linux 上传工具 lr,Linux传输工具lrzsz
- 2019牛客暑期多校训练营(第一场) A	Equivalent Prefixes ( st 表 + 二分+分治)
- S/4HANA extension field search的SQL语句是在什么地方生成的
- python菜鸟100例精选
- Hashtable的测试
- linux系统下的权限知识梳理
- python车牌识别系统开源代码_python实现车牌识别的示例代码
- 【转】兄弟俩玩的2000亿美元的公司,盖茨与鲍尔默:微软双雄上演终极接力
- [附源码]java毕业设计宾馆客房管理系统
- 晓前端·周刊【第6期】:量子霸权
- 开源软电话 (Open Source Soft Phones)
- websocket 给服务端发送太长数据处理(The decoded text message was too big for the output buffer and the endpoint )
- mysql未开启binlog恢复数据_MYSQL bin_log 开启及数据恢复
- 机器学习Python相关套件(np, plt, pd)
- (SIP-1-话机注册)关于IP话机通过SIP协议注册到PBX电话交换机的全过程解析-如何看wireshark中的报文
热门文章
- 单曲循环 翻译_“单曲循环”用英语怎么说?
- java 自定义结构_java自定义构造二叉树及其遍历
- vue 数组转集合_思想实验:如何在Vue中使localStorage具有响应式?
- 关于el-form中的rules未生效问题的解决方法
- python中pep8规范_Python PEP8规范
- mysql分组查询学生平均年龄_mysql练习题
- u盘解密软件_【精彩文章】基于STM32的指纹识别U盘设计
- 一般纳米材料是指尺度为_纳米是什么米?什么是纳米材料?(1)
- 中大计算机考研爆冷,中山大学计算机“爆冷”,321分排名第二,网友:“锦鲤”附体!...
- dhcp 服务器发出了 dhcpnack 消息,跪求DHCP报文分析