[BZOJ2818]Gcd(莫比乌斯反演)
来源:互联网 发布:监控与数据采集 编辑:程序博客网 时间:2024/06/05 06:12
题目:
我是超链接
题解:
据说是数论,然而喵喵喵毅然决然写了莫比乌斯反演
和上一道题目的柿子过程差不多啊。。。
其实到这个位置已经能做了,但是枚举每一个t挺费劲,我们可以考虑这个相等的部分
设分子为N,我们说相等的部分的值是N/t,等于这个值的最大在N/(N/t)的位置
那么我们对于每一个相等的部分计算,对μ求前缀和算一下
代码:
#include <cstdio>#include <iostream>#define LL long longusing namespace std;const int N=1e7;int n,pri[N+5],num,mu[N+5];LL ans;bool ss[N+5];void get_mu(){ mu[1]=1; for (int i=2;i<=n;i++) { if (!ss[i]) { pri[++num]=i; mu[i]=-1; } for (int j=1;j<=num && pri[j]*i<=n;j++) { ss[pri[j]*i]=1; if (i%pri[j]==0) { mu[pri[j]*i]=0; break; } mu[pri[j]*i]=-mu[i]; } mu[i]+=mu[i-1]; }}int main(){ int d,t,j; scanf("%d",&n); get_mu(); for (d=1;d<=num && n/pri[d];d++) { int N=n/pri[d]; for (t=1;t<=N;t=j+1) { j=min(N,N/(N/t)); ans+=(LL)(N/t)*(N/t)*(mu[j]-mu[t-1]); } } printf("%lld",ans);}
阅读全文
1 0
- 【BZOJ2818】Gcd(莫比乌斯反演)
- BZOJ2818 Gcd[莫比乌斯反演]
- 【莫比乌斯反演】BZOJ2818 Gcd
- BZOJ2818 GCD 【莫比乌斯反演】
- [BZOJ2818]Gcd(莫比乌斯反演)
- [BZOJ2818]Gcd(莫比乌斯反演)
- bzoj2818 欧拉函数、莫比乌斯反演
- BZOJ2818:Gcd(莫比乌斯函数 & 欧拉函数)
- HDU1695 GCD(莫比乌斯反演)
- GCD问题--莫比乌斯反演
- hdu1695 gcd 莫比乌斯反演
- [hdu1695][莫比乌斯反演]Gcd
- hdu1695 GCD(莫比乌斯反演)
- 杭电1695 GCD(莫比乌斯反演)
- BZOJ 2818 gcd(莫比乌斯反演)
- HDU 1695 GCD(莫比乌斯反演)
- HDU 1695 GCD(莫比乌斯反演)
- ZOJ 3868 GCD Expectation(莫比乌斯反演)
- 171204之Javascript(一)
- Function
- 06_Zookeeper_安全认证讲解
- java(4)--排序算法及二维数组
- css居中
- [BZOJ2818]Gcd(莫比乌斯反演)
- 07_Zookeeper_实际应用讲解
- 08_Zookeeper_zkClientAPI讲解
- Android Studio快捷键
- sort和qsort对字符数组排序
- 09_Zookeeper_zkClientListener讲解
- 免费看最新电影的网站
- c51跑马灯
- Kettle7.1在CentOS7下连接资源库报错No more handles [MOZILLA_FIVE_HOME=''] 等解决办法