
ACM - 数论
文章平均质量分 64
Freenm
这个作者很懒,什么都没留下…
展开
-
HDU 1222 - Wolf and Rabbit & HDU 1108 - 最小公倍数
水题,只是想借此记一下gcd函数的模板 #include int gcd(int m,int n){return n==0 ? m : gcd(n,m%n);} int main() { int n,m,t; scanf("%d",&t); while(t--){ scanf("%d%d",&m,&n); if(gcd(n,m)==1) p原创 2017-04-17 13:35:58 · 377 阅读 · 0 评论 -
HDU 4675 - GCD of Sequence
解题思路参考:http://www.cnblogs.com/kuangbin/archive/2013/08/13/3255943.html 如果gcd(b[1...n])=d,那么b[1...n]中每个b[i]都应是d的倍数, 而b[1...n]是从a[1...n]修改k个数进而变过来的, 那么,假设a[1...n]中有cnt个a[i]本来就是d的倍数, 那么首先 ( n-cnt )个不原创 2017-04-17 22:16:11 · 451 阅读 · 0 评论 -
hihocoder 1284 - 机会渺茫
N有N_cnt个约数,M有M_cnt个约数,那么总共有N_cnt * M_cnt种对应情况。 假设其中有D_cnt个对应结果是相等的,而这D_cnt个数正好是gcd(N,M)的所有约数。 例如: N=18 , M=42 18 = 1 * 18 ; 2 * 9 ; 3 * 6 ; N_cnt=6 42 = 1 * 42 ; 2 * 21 ; 3 * 14 ; 6 * 7 ; M_cnt=8原创 2017-04-19 23:04:15 · 413 阅读 · 0 评论 -
UVA 11768 - Lattice Point or Not
首先本题需要用到扩展欧几里得算法…… 关于exgcd算法的一点简略证明: 那么,对于函数exgcd(a,b)=(d,x,y),其中d满足d=gcd(a,b); (x,y)满足ax+by=d; 则exgcd(b,a mod b)=(d,x',y'),而此时,使用 x = y' ; y = x' - floor(a/b) * y' = x' - floor(a/b) *原创 2017-04-23 20:33:57 · 354 阅读 · 0 评论