bzoj 2818(欧拉函数)
来源:互联网 发布:怎么看自己的淘宝联盟i 编辑:程序博客网 时间:2024/04/26 23:47
传送门
题解:
1.莫比乌斯反演,又慢又麻烦,拒绝
2.欧拉函数性质,外层枚举n以内的质数d,内层求n/d范围内互质的数对,这一步可以通过预处理欧拉函数前缀和实现,注意数对是有序的,但是(1,1)要去重。
#include<bits/stdc++.h>using namespace std;typedef long long ll;const int MAXN=1e7+2;int n,phi[MAXN],prime[MAXN/10],tot=0;bool vis[MAXN];ll ans=0,sum[MAXN]={0};inline void linear_shaker() { phi[1]=1; memset(vis,false,sizeof(vis)); for (register int i=2;i<=n;++i) { if (!vis[i]) prime[++tot]=i,phi[i]=i-1; for (int j=1;j<=tot&&i*prime[j]<=n;++j) { vis[i*prime[j]]=true; if (i%prime[j]==0) {phi[i*prime[j]]=phi[i]*prime[j];break;} phi[i*prime[j]]=phi[i]*(prime[j]-1); } } for (register int i=1;i<=n;++i) sum[i]=sum[i-1]+phi[i];}int main() { scanf("%d",&n); linear_shaker(); for (register int i=1;i<=tot;++i) ans+=(sum[n/prime[i]]<<1)-1; printf("%lld\n",ans); return 0;}
阅读全文
0 0
- bzoj 2818(欧拉函数)
- bzoj 2818 GCD(欧拉函数)
- BZOJ 2818 欧拉函数
- BZOJ-2818-Gcd(欧拉函数/Mobius反演)
- bzoj 2818 Gcd 欧拉函数
- bzoj 2818 Gcd 【欧拉函数】
- [BZOJ 2818] gcd · 欧拉函数
- BZOJ 2818 GCD 欧拉函数
- BZOJ 2818 GCD【欧拉函数】
- 【BZOJ】2818 Gcd 欧拉函数
- bzoj 2818 Gcd 欧拉函数求和
- BZOJ 2190 仪仗队(欧拉函数)
- bzoj 2186(欧拉函数)
- bzoj 2705(欧拉函数)
- BZOJ 3884 (欧拉函数)
- BZOJ 2705 欧拉函数
- BZOJ 2190 欧拉函数
- bzoj 2705 欧拉函数
- Jq实现省市联动(JqDOM操作和遍历)
- 测试博客
- block copy字符修饰
- 频道管理
- 展示数据,上拉加载,下拉刷新,一定要导入library.
- bzoj 2818(欧拉函数)
- codeforces 675A Infinite Sequence
- mtk-2017 GPS Training
- 设计模式之备忘录模式
- 设计模式-适配器模式
- JSP基础(三)
- Geosoft Oasis.Montaj.v6.4.2
- Hive内置函数
- angularjs实现分页和搜索