bzoj2818 Gcd
来源:互联网 发布:网络摄像头安装方案 编辑:程序博客网 时间:2024/05/16 02:58
题目
bzoj第一题,竟然不是1000,233,自己也是可以的。。
经典莫比乌斯反演。。。
#include<iostream>#include<algorithm>#include<cstdio>#include<cstdlib>#include<string>#include<cstring>#include<cmath>#define MAXN 10000000#define LL long longusing namespace std;bool P[MAXN+1],flag;int mu[MAXN+1];char s[21];LL len;LL x,y;LL prime[MAXN+1],size;LL N;LL ans;void write(int x){ len=0; flag=true; if(x<0)flag=false,x=-x; if(x==0)putchar('0'); while(x!=0) { s[++len]=x%10+'0'; x=x/10; } if(!flag)putchar('-'); for(int i=len;i>=1;i--) putchar(s[i]); putchar('\n');}int main(){ scanf("%d",&N); memset(P,true,sizeof(P)); P[1]=false; for(LL i=2;i<=N;i++) { if(P[i]) { { for(LL j=i*i;j<=N;j+=i) P[j]=false; } } } for(LL i=1;i<=N;i++) mu[i]=1; for(LL i=2;i<=N;i++) { if(P[i]) { mu[i]=-1; for(LL j=i+i;j<=N;j+=i) { if((j/i)%i==0)mu[j]=0; else mu[j]=-mu[j]; } } } size=0; for(LL i=1;i<=N;i++) { if(P[i]) prime[++size]=i; } ans=0; for(LL i=1;i<=size;i++) { for(LL j=1;j<=N/prime[i];j++) ans=ans+mu[j]*(N/(j*prime[i]))*(N/(j*prime[i])); } cout<<ans; return 0;}
阅读全文
0 0
- 【BZOJ2818】Gcd
- [BZOJ2818] Gcd
- [BZOJ2818]Gcd
- bzoj2818 Gcd
- [BZOJ2818]Gcd
- [bzoj2818]gcd
- [bzoj2818]gcd
- 【bzoj2818】Gcd
- BZOJ2818: Gcd
- bzoj2818 Gcd
- 【bzoj2818】Gcd
- bzoj2818: Gcd
- bzoj2818 Gcd
- BZOJ2818: Gcd
- BZOJ2818 Gcd
- 【bzoj2818】【GCD】【数论】
- bzoj2818: Gcd(第二次做)
- BZOJ2818 Gcd 素数筛+欧拉筛
- cookie的前台、后台存储和取值
- bzoj1912 [Apio2010]patrol 巡逻
- bzoj2154 Crash的数字表格
- bzoj2160 拉拉队排练
- radis在linux中使用实例。
- bzoj2818 Gcd
- bzoj3156 防御准备
- Linux shell计算两个文件的交集,并集和差集
- JSP中Cookie的设置和删除
- bzoj3437 小P的牧场
- bzoj4195 [Noi2015]程序自动分析
- 蛇形数组
- 洛谷p1896互不侵犯
- 安卓技术点整理