BZOJ 2005 2005: [Noi2010]能量采集 | 容斥原理
2018-01-05 15:47
281 查看
题目:
http://www.lydsy.com/JudgeOnline/problem.php?id=2005
题解:
https://www.geek-share.com/detail/2623817483.html
#include<cstdio> #include<algorithm> #define N 100005 using namespace std; typedef long long ll; ll phi ,su ,sum ; bool he ; void Euler(int n) { int tot=0; phi[1]=1; for(int i=2;i<=n;i++) { if(!he[i]) { su[++tot]=i; phi[i]=i-1; } for(int j=1;j<=tot;j++) { if(i*su[j]>=n)break; he[i*su[j]]=1; if(i%su[j]==0) { phi[i*su[j]]=phi[i]*su[j];break; } else phi[i*su[j]]=phi[i]*(su[j]-1); } } for(int i=1;i<=n;i++) phi[i]+=phi[i-1]; return; } int main(){ ll n,m,ans=0; scanf("%lld%lld",&n,&m); if(n>m)swap(n,m); Euler(n+1); for(ll i=1,j;i<=n;i=j+1) { j=min(n/(n/i),m/(m/i)); ans+=(ll)(phi[j]-phi[i-1])*(n/i)*(m/i); } printf("%lld\n",2*ans-n*m); return 0; }
相关文章推荐
- BZOJ 2005: [Noi2010]能量采集( 数论 + 容斥原理 )
- 【BZOJ2005】【NOI2010】能量采集(莫比乌斯反演,容斥原理)
- BZOJ 2005 NOI2010 能量采集 数论+容斥原理
- BZOJ 2005: [Noi2010]能量采集|容斥原理
- 【BZOJ 2005】[Noi2010]能量采集 (容斥原理| 欧拉筛+ 分块)
- 【BZOJ 2005】【NOI 2010】能量采集 数论+容斥原理
- 【BZOJ 2005】[Noi2010]能量采集
- BZOJ2005: [Noi2010]能量采集
- BZOJ 2005 [Noi2010]能量采集 (容斥)
- BZOJ 2005: [Noi2010]能量采集
- 2005: [Noi2010]能量采集 - BZOJ
- bzoj 2005 NOI 2010 能量采集
- bzoj 2005: [Noi2010]能量采集
- bzoj2005【NOI2010】能量采集
- bzoj 2005: [Noi2010]能量采集【莫比乌斯反演】
- BZOJ2005 [Noi2010]能量采集
- 【bzoj2005】[Noi2010]能量采集 莫比乌斯反演
- BZOJ 2005 [Noi2010]能量采集 ——Dirichlet积
- bzoj2005 [Noi2010]能量采集
- 【BZOJ】2005 [Noi2010]能量采集