摘要:
原题: URAL 1091 http://acm.timus.ru/problem.aspx?space=1&num=1091 题意:要求找出K个不同的数字使他们有一个大于1的公约数,且所有的数字都不能大于一个指定的数字S。 解法:可以考虑每个S内的素数,此素数和它的所有倍数构成一个集合,则可以在这 阅读全文
摘要:
原题: UVA 1169 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3610大白书上的原题。代码:#include #include #include ... 阅读全文
摘要:
原题:UVA 1172 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3613动态规划问题。定义: dp[i] = 右岸前i个村庄(m岸)能够与左岸(n岸)... 阅读全文
摘要:
设两只青蛙跳了t步,则此时A的坐标:x+mt,B的坐标:y+nt。要使的他们在同一点,则要满足: x+mt - (y+nt) = kL (p是整数) 化成: (n-m)t + kL = x-y (L > 0) 则变成求解同余方程: (n-m)t ≡ (x-y) mod L ,用扩展gcd解决。 且此 阅读全文
摘要:
定义:dp[i][j] 表示 在前i个数中,使整个gcd值为j时最少取的数个数。 则有方程: gg = gcd(a[i],j) gg == j : 添加这个数gcd不变,不添加, dp[i][j] = dp[i-1][j] gg != j: t添加,更新答案, dp[i][gg] = dp[i-1] 阅读全文