51nod1238 最小公倍数之和 V3
来源:互联网 发布:网络电视江苏卫视直播 编辑:程序博客网 时间:2024/05/16 12:00
题解
感觉柿子画起来有点费劲,我太蒻了。
令
要画出杜教筛,要试着对卷积求个前缀和
因为强迫症,我把
好了
代码
//杜教筛 #include <cstdio>#include <algorithm>#define maxn 4700000#define mod 1000000007llusing namespace std;typedef long long ll;ll f[maxn+10], phi[maxn+10], _2, _6, N;int prime[maxn+10];bool mark[maxn+10];void shai(){ ll i, j; phi[1]=1; for(i=2;i<maxn;i++) { if(!mark[i])prime[++*prime]=i, phi[i]=i-1; for(j=1;i*prime[j]<maxn;j++) { mark[i*prime[j]]=1; if(i%prime[j]==0){phi[i*prime[j]]=phi[i]*prime[j];break;} phi[i*prime[j]]=phi[i]*phi[prime[j]]; } } for(i=1;i<maxn;i++)phi[i]=(phi[i]*i%mod*i%mod+phi[i-1])%mod;}ll sqr(ll x){if(x>mod)x%=mod;return x*x%mod;}ll s1(ll x){if(x>mod)x%=mod;return x*(1+x)%mod*_2%mod;}ll s2(ll x){if(x>mod)x%=mod;return x*(1+x)%mod*(2*x+1)%mod*_6%mod;}ll s3(ll x){if(x>mod)x%mod;return sqr(s1(x));}ll getf(ll x){return x<maxn?phi[x]:f[N/x];}void djs(ll n){ if(n<maxn or getf(n))return; ll i, last, t=N/n; f[t]=s3(n); for(i=2;i<=n;i=last+1) { last=n/(n/i); djs(n/i); f[t]=(f[t]-(s2(last)-s2(i-1))*getf(n/i)%mod)%mod; }}int main(){ ll i, last, ans=0; _2=500000004; _6=166666668; scanf("%lld",&N); shai(); djs(N); for(i=1;i<=N;i=last+1) { last=N/(N/i); ans=(ans+getf(N/i)*(s1(last)-s1(i-1)))%mod; } printf("%lld",(ans+mod)%mod); return 0;}
0 0
- 51nod1238 最小公倍数之和 V3
- 【51nod1238】 最小公倍数之和 V3
- 51nod1238 最小公倍数之和V3
- [杜教筛] 51nod1238. 最小公倍数之和 V3
- [51nod1238]最小公倍数之和
- [杜教筛+莫比乌斯反演] 51Nod1238: 最小公倍数之和 V3
- [杜教筛] 51Nod 1238 最小公倍数之和 V3
- 【51NOD 1238】最小公倍数之和 V3
- 51nod 1238 最小公倍数之和 V3
- 51nod 1238 最小公倍数之和 V3
- 51Nod-1238-最小公倍数之和 V3
- 51nod 1238 最小公倍数之和 V3
- 51NOD1238
- 【51nod1363】最小公倍数之和
- [数论][莫比乌斯反演][杜教筛] 51Nod 1238 最小公倍数之和 V3
- 51 nod 1363 最小公倍数之和
- 【51Nod 1363】最小公倍数之和
- [51nod1190]最小公倍数之和V2
- 浅析jvm与jmm模型结构与关系
- android studio导入Eclipce项目。找不到so文件
- USACO
- Ubuntu14.04+ROS indigo+ORB-SLAM2
- COGS1212. 奶牛排队
- 51nod1238 最小公倍数之和 V3
- 深入理解javascript原型和闭包(3)——prototype原型
- 集合类Collections.sort()的源码分析
- 移动端数据库神器-Realm 项目配置(入门一)
- Windows I/O操作
- Problem A: 求平均年龄
- Problem B: 合唱比赛开始了!
- log4j的基本配置
- Problem C: 向量的运算