TopCoder SRM 668 Div2 Problem 1000 - AnArray (数学)
2015-09-20 20:02
531 查看
题意
求k|abc,abc的对数。思路
根据代码YY出来的,如有不对请路过的巨巨指出_(:3」∠)_如果k|abc,那么k|gcd(a,k)∗gcd(b,k)∗gcd(c,k),也就是说,我们只要处理每个数和K的gcd就可以了。
然后我们可以去枚举两个数,统计第三个数。
找完之后分解一下当前的数即可。
代码
class AnArray { public: int cnt[MAXN]; int solveProblem(vector<int> A, int K) { LL ans = 0; MS(cnt, 0); for (int i = 0; i < SZ(A); i++) A[i] = __gcd(A[i], K); for (int i = 0; i < SZ(A); i++) { for (int j = i+1; j < SZ(A); j++) { int g = __gcd((LL)A[i]*A[j], (LL)K); ans += cnt[K/g]; } for (int j = 1; j*j <= A[i]; j++) if (A[i] % j == 0) { cnt[j]++; if (j*j != A[i]) cnt[A[i]/j]++; } } return ans; } };
相关文章推荐
- hdu 4738 Caocao's Bridges 2013 ACM-ICPC杭州赛区网络赛 1001 双连通分量
- hdu 4750 2013 ACM/ICPC Asia Regional Nanjing Online 1003 并查集+离线操作
- hust 1626 Cutting rope
- HDU5117
- 1216: 斐波那契数列
- 1217: 打印沙漏
- 我的ACM-ICPC资源整理
- 2014 ACM-ICPC 亚洲地区赛 西安站小结
- hdu5007 ACM-ICPC 西安赛区网赛A题 水题
- HDU 1394 线段树求逆序数
- HDU 5239 Doom The 2015 ACM-ICPC China Shanghai Metropolitan Programming Contest
- HDU 5241 Friends (数学)
- HDU 3255 题解 线段树+扫描线
- Light 1003 - Drunk (拓扑排序)
- TopCoder SRM 659 Div2 Problem 500 - PublicTransit (思维)
- UVa 1529 - Clock (模拟)
- Codeforces 551C - GukiZ hates Boxes (二分 + 贪心)
- TopCoder SRM 660 Div2 Problem 1000 - Powerit (数论)
- UVa 10623 - Thinking Backward (平面图的欧拉公式)
- TopCoder SRM 663 Div2 Problem 500 - ABBA (思维)