BZOJ 3309: DZY Loves Math
2017-03-30 21:04
501 查看
Description
对于正整数n,定义f(n)为n所含质因子的最大幂指数。例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007)=1, f(1)=0。给定正整数a,b,求sigma(sigma(f(gcd(i,j)))) (i=1..a, j=1..b)。
Input
第一行一个数T,表示询问数。接下来T行,每行两个数a,b,表示一个询问。
Output
对于每一个询问,输出一行一个非负整数作为回答。Sample Input
47558588 9653114
6514903 4451211
7425644 1189442
6335198 4957
Sample Output
3579345393990114225956593420
4332838845846
15400094813
HINT
【数据规模】T<=10000
1<=a,b<=10^7
分析
先%%%POPOQQQ然后 扔链接http://blog.csdn.net/popoqqq/article/details/42122413
代码
#include <bits/stdc++.h> #define N 10001000 int tot; int a ,prime ,g ,p ; bool notPrime ; void getMu() { for (int i = 2; i < N; i++) { if (!notPrime[i]) { prime[++tot] = i; a[i] = 1; p[i] = i; g[i] = 1; } for (int j = 1; prime[j] * i < N && j <= tot; j++) { notPrime[prime[j] * i] = 1; if (i % prime[j] == 0) { a[prime[j] * i] = a[i] + 1; p[prime[j] * i] = p[i] * prime[j]; int tmp = i / p[i]; if (tmp == 1) g[prime[j] * i] = 1; else g[prime[j] * i] = (a[tmp] == a[prime[j] * i] ? - g[tmp] : 0); break; } a[prime[j] * i] = 1; p[prime[j] * i] = prime[j]; g[prime[j] * i] = (a[i] == 1 ? -g[i] : 0); } } for (int i = 1; i < N; i++) g[i] += g[i - 1]; } long long slove(int n,int m) { long long ans = 0; if (n > m) std::swap(n,m); for (int i = 1,last; i <= n; i = last + 1) { last = std::min(n / (n / i),m / (m / i)); ans += (long long)(n / i) * (m / i) * (g[last] - g[i - 1]); } return ans; } int main() { getMu(); int T,n,m; scanf("%d",&T); while (T--) { scanf("%d%d",&n,&m); printf("%lld\n",slove(n,m)); } }
相关文章推荐
- BZOJ3309 :DZY Loves Math(莫比乌斯反演)
- 【莫比乌斯反演】BZOJ3309 DZY Loves Math
- 【BZOJ3309】DZY Loves Math
- [BZOJ3309]DZY Loves Math
- bzoj 3309 DZY Loves Math
- BZOJ 3309: DZY Loves Math
- 【BZOJ 3309】DZY Loves Math
- bzoj3309 DZY Loves Math(线性筛+反演)
- 【线性筛】【bzoj 3309】: DZY Loves Math
- bzoj 3309: DZY Loves Math
- bzoj3309 DZY Loves Math
- 【BZOJ】3309: DZY Loves Math
- 【BZOJ3309】DZY Loves Math(莫比乌斯反演)
- BZOJ 3309: DZY Loves Math
- BZOJ 3309 DZY Loves Math ——莫比乌斯反演
- bzoj 3309: DZY Loves Math 莫比乌斯反演
- 【bzoj3309】DZY Loves Math
- BZOJ 3309 DZY Loves Math
- DZY Loves Math [Bzoj 3309]
- BZOJ 3309 DZY Loves Math