[BZOJ 2818]Gcd:莫比乌斯反演
来源:互联网 发布:mac蓝光原盘怎么播放 编辑:程序博客网 时间:2024/05/22 05:04
点击这里查看原题
先跑一遍线性素数筛,然后枚举每个小于n的素数,求gcd(x,y)为素数的对数即为求gcd(x/prime[i],y/prime[i])=1的对数,因此对于用n去除得到的每个素数。
剩下的部分类似于HDU 2841
/*User:SmallLanguage:C++Problem No.:2818*/#include<bits/stdc++.h>#define ll long long#define inf 999999999using namespace std;const int M=1e7+5;int n,prime[1000005],tot,mu[M];ll ans;bool np[M];int main(){ freopen("data.in","r",stdin);// mu[1]=1; for(int i=2;i<=(int)1e7;i++){ if(!np[i]){ prime[++tot]=i; mu[i]=-1; } for(int j=1;j<=tot&&(ll)prime[j]*i<=1e7;j++){ np[prime[j]*i]=1; if(i%prime[j]==0){ mu[prime[j]*i]=0; break; } mu[prime[j]*i]=-mu[i]; } } scanf("%d",&n); for(int k=1;prime[k]<=n;k++){ int t=n/prime[k]; for(int i=1;i<=t;i++) ans+=(ll)(t/i)*(t/i)*mu[i]; } printf("%lld\n",ans); return 0;}
0 0
- BZOJ 2818 gcd(莫比乌斯反演)
- bzoj 2818 Gcd 莫比乌斯反演
- BZOJ 2818: Gcd (莫比乌斯反演)
- Bzoj 2818: Gcd(莫比乌斯反演)
- [BZOJ 2818]Gcd:莫比乌斯反演
- BZOJ 2818 Gcd (欧拉筛 \ 莫比乌斯反演)
- bzoj 2818 Gcd(莫比乌斯反演)
- BZOJ 2818-Gcd(莫比乌斯反演)
- BZOJ 2820 YY的GCD 莫比乌斯反演
- 【莫比乌斯反演】[BZOJ 2820 YY的GCD]
- BZOJ 2820 YY的GCD 莫比乌斯反演
- [莫比乌斯反演] BZOJ 2820 YY的GCD
- BZOJ 2820 YY的GCD(莫比乌斯反演)
- bzoj 2820: YY的GCD 莫比乌斯反演
- BZOJ 2820 YY的GCD 莫比乌斯反演
- 【BZOJ 2820】YY的GCD 莫比乌斯反演
- BZOJ 2820 YY的GCD 莫比乌斯反演
- [BZOJ 2820]YY的GCD:莫比乌斯反演
- 挑战程序设计1.6.1 Instance1——三角形
- 方法的重载和重写
- 安装Python扩展时,Configure error: Python headers not found错误解决办法
- 字段名
- ZipUtils 压缩工具包
- [BZOJ 2818]Gcd:莫比乌斯反演
- java值Document解析xml
- java中Comparator有什么用,举例说明?
- 数据的离散化
- tp5添加 上传图片
- poj 3321 计算一个树的子树共有多少节点
- Java中文乱码问题及其解决方法
- NYOJ 311 完全背包
- JDK常用API