HDU-2017 多校训练赛2-1009-TrickGCD
2017-07-28 15:25
525 查看
ACM模版
![](http://img.blog.csdn.net/20170728152333164?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZl96eWo=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
想看具体的题解,可以去看看我学姐的题解报告,真是很详细的。
>>>佐理慧的 blog<<<
描述
题解
说到怎么做,就是一个莫比乌斯搞的容斥,我一开始竟然想成了 dp,也是可笑了……想看具体的题解,可以去看看我学姐的题解报告,真是很详细的。
>>>佐理慧的 blog<<<
代码
#include <iostream> #include <cstring> #include <cstdio> using namespace std; typedef long long ll; const int MAXN = 1e5 + 10; const ll MOD = 1e9 + 7; int mu[MAXN]; void mobius(int x) { mu[1] = 1; for (int i = 1; i <= x; i++) { for (int j = i + i; j <= x; j += i) { mu[j] -= mu[i]; } } } int n; int cnt[MAXN << 1]; ll QPow(ll x, int y) { ll ret = 1; while (y > 0) { if (y & 1) { ret = ret * x % MOD; } x = x * x % MOD; y >>= 1; } return ret; } template <class T> inline void scan_d(T &ret) { char c; ret = 0; while ((c = getchar()) < '0' || c > '9'); while (c >= '0' && c <= '9') { ret = ret * 10 + (c - '0'), c = getchar(); } } int main() { mobius(MAXN); int T, ce = 1, mn; scan_d(T); while (T--) { mn = MAXN; memset(cnt, 0, sizeof(cnt)); scan_d(n); int x; while (n--) { scan_d(x); cnt[x]++; mn = min(mn, x); } ll ans = 0; int t = MAXN << 1; for (int i = 1; i <= t; i++) { cnt[i] += cnt[i - 1]; } for (int i = 2; i <= mn; i++) { ll temp = 1; for (int j = 1; i * j <= MAXN; j++) { temp = (temp * QPow((ll)j, cnt[i * j + i - 1] - cnt[i * j - 1])) % MOD; } ans = (ans - temp * mu[i] + MOD) % MOD; } printf("Case #%d: %lld\n", ce++, ans); } return 0; }
相关文章推荐
- HDU 2017 多校联合训练赛2 1009 6053 TrickGCD 莫比乌斯函数
- HDU-2017 多校训练赛3-1003-Kanade’s sum
- HDU-2017 多校训练赛3-1005-RXD and dividing
- HDU-2017 多校训练赛8-补题
- HDU 2017 多校联合训练赛4 4003 6069 Counting Divisors 素数筛和素因数分解
- HDU 2017 多校联合训练赛8 1008 6140 Hybrid Crystals
- HDU-2017 多校训练赛1-1002-Balala Power!
- HDU-2017 多校训练赛5-1006-Rikka with Graph
- HDU-2017 多校训练赛6-1007-GCDispower
- HDU-2017 多校训练赛9-补题
- HDU 6105 (2017 多校训练赛6 1010)Gameia(博弈)
- HDU-2017 多校训练赛8-1006-Fleet of the Eternal Throne
- 2017 杭电多校联赛第二场 1009 TrickGCD(容斥原理) HDU 6053
- HDU-2017 多校训练赛2-1011-Regular polygon
- HDU-2017 多校训练赛2-补题
- HDU-2017 多校训练赛9-1006-Senior Pan
- 2017 多校2 hdu 6053 TrickGCD
- HDU 2017 多校联合训练赛3 3003 6058 Kanade's sum 枚举 模拟链表
- HDU-2017 多校训练赛4-1007-Matching In Multiplication
- HDU-2017 多校训练赛2-1003-Maximum Sequence