数论:GCD
skajre
这个作者很懒,什么都没留下…
展开
-
欧几里德算法和唯一分解定理
int gcd(int a,int b){ return (b==0)?a:gcd(b,a%b);}bool judge(int *X){ X[2]/=gcd(X[2],X[1]); for(int k=3;k<=n;k++) X[2]/=gcd(X[k],X[2]); return X[2]==1;}用gcd可以求出最大公倍数,最小公约数可以用a*b原创 2016-07-14 15:35:07 · 393 阅读 · 0 评论 -
POJ 2115 C Loooooops
//// main.cpp// Richard//// Created by 邵金杰 on 16/7/29.// Copyright © 2016年 邵金杰. All rights reserved.//#include#includetypedef long long LL;LL a,b,c,k;void gcd(LL a,LL b,LL &d,LL &x,L原创 2016-07-29 10:19:52 · 290 阅读 · 0 评论 -
POJ 2142 The Balance
根据题意很容易就列出一个方程,ax+by=d;只要用欧几里德扩展求解即可,但是这里需要放的砝码数最小,那么就要求两组解,另一个方程为bx+ay=d;这样两个方程的意思是求出质量为a的砝码最小的解,在根据求出的x去求质量为b的砝码的解,另一个方程是求出质量为b的砝码最小的解,再根据求出的解去求另一个砝码的解;那样就有两组解了,选择x+y小的那一组即可。//// main.cp原创 2016-08-01 16:10:07 · 272 阅读 · 0 评论