bzoj2005 [Noi2010]能量采集
2017-09-09 16:17
411 查看
题目
又是一道反演题。。。
首先,一个点的价值是gcd(x,y)*2-1
我们就求一个gcd求和
用phi卷一下就好了。
详情请见dalao博客
又是一道反演题。。。
首先,一个点的价值是gcd(x,y)*2-1
我们就求一个gcd求和
用phi卷一下就好了。
详情请见dalao博客
#include<bits/stdc++.h> #define LL long long #define N 1000000 using namespace std; LL prime[N+1],siz,phi[N+1]; bool P[N+1]; void init() { memset(P,true,sizeof(P)); P[1]=false,phi[1]=1; for(int i=1;i<=N;i++) { if(P[i]) { prime[++siz]=i; phi[i]=i-1; } for(int j=1;j<=siz&&i<=N/prime[j];j++) { P[i*prime[j]]=false; if(i%prime[j]==0) { phi[i*prime[j]]=phi[i]*prime[j]; break; } phi[i*prime[j]]=phi[i]*(prime[j]-1); } } } LL GCD(LL A,LL B) { return B==0?A:GCD(B,A%B); } int main() { //freopen("a.in","r",stdin); //freopen("a.out","w",stdout) 4000 ; init(); LL Ans=0,m,n; cin>>m>>n; for(int i=1;i<=min(m,n);i++) Ans+=(n/i)*(m/i)*phi[i]; cout<<2*Ans-m*n; return 0; }
相关文章推荐
- bzoj2005: [Noi2010]能量采集
- BZOJ系列2005《[Noi2010]能量采集》题解
- 【NOI 2010】【BZOJ 2005】【JZOJ 2225】能量采集
- bzoj2005 [Noi2010]能量采集(Mobius反演,欧拉函数)
- [BZOJ2005][Noi2010]能量采集
- bzoj 2005: [Noi2010]能量采集【莫比乌斯反演】
- BZOJ 2005: [Noi2010]能量采集
- bzoj 2005 NOI 2010 能量采集
- BZOJ 2005 NOI2010 能量采集 数论+容斥原理
- bzoj2005【NOI2010】能量采集
- BZOJ 2005 [Noi2010]能量采集
- BZOJ2005 [Noi2010]能量采集
- [bzoj2005][luogu1447][noi2010]能量采集
- bzoj 2005: [Noi2010]能量采集 筛法||欧拉||莫比乌斯
- 【bzoj2005】[Noi2010]能量采集 莫比乌斯反演
- Bzoj2005[Noi2010]能量采集
- [Noi 2010][BZOJ 2005][JZOJ 2225]能量采集
- BZOJ2005 [Noi2010]能量采集 递推+容斥/欧拉函数
- 【NOI2010】bzoj2005 能量采集
- 【BZOJ】2005: [Noi2010]能量采集(欧拉函数+分块)