bzoj4916 神犇和蒟蒻
2018-02-02 10:26
453 查看
题目
首先,由μ的性质知道,第一问的答案一定为1。
考虑第二问。
φ(i2)=iφ(i)
令Φ(i)=∑ni=1iφ(i)
则发现
∑ni=1iΦ([ni])=∑ni=1i∑[ni]j=1jφ(j)
∑ni=1i∑[ni]j=1jφ(j)=∑ni=1∑i|jijiφ(ji)=∑ni=1∑i|jjφ(ji)
交换一下求和顺序。
∑ni=1∑i|jjφ(ji)=∑nj=1j∑i|jφ(ji)=∑nj=1j2
那么这样就可以杜教筛了。
首先,由μ的性质知道,第一问的答案一定为1。
考虑第二问。
φ(i2)=iφ(i)
令Φ(i)=∑ni=1iφ(i)
则发现
∑ni=1iΦ([ni])=∑ni=1i∑[ni]j=1jφ(j)
∑ni=1i∑[ni]j=1jφ(j)=∑ni=1∑i|jijiφ(ji)=∑ni=1∑i|jjφ(ji)
交换一下求和顺序。
∑ni=1∑i|jjφ(ji)=∑nj=1j∑i|jφ(ji)=∑nj=1j2
那么这样就可以杜教筛了。
#include<bits/stdc++.h> #define M 1600000 using namespace std; typedef long long ll; const ll mod=1e9+7,inv6=166666668,inv2=500000004; int n; int prime[M+5],notp[M+5],cnt; ll phi[M+5]; map <int,ll> mp; inline void init() { notp[1]=true,phi[1]=1; for(int i=1;i<=M;i++) { if(!notp[i])prime[++cnt]=i,phi[i]=i-1; for(int j=1;j<=cnt&&i*prime[j]<=M;j++) { notp[i*prime[j]]=true; if(i%prime[j]==0) { phi[i*prime[j]]=phi[i]*prime[j]; break; } phi[i*prime[j]]=phi[i]*phi[prime[j]]; } } for(int i=1;i<=M;i++)phi[i]=(ll)i*phi[i]%mod; for(int i=1;i<=M;i++)phi[i]=(phi[i]+phi[i-1])%mod; } inline ll ksm(ll a,ll b) { ll ans=1; while(b) { if(b&1)ans=ans*a%mod; a=a*a%mod; b>>=1; } return ans; } inline ll s2(ll x) { return x*(x+1ll)%mod*(2ll*x+1ll)%mod*inv6%mod; } inline ll s1(ll x) { return x*(x+1ll)%mod*inv2%mod; } inline ll get(ll x) { if(x<=M)return phi[x]; if(mp[x])return mp[x]; ll tmp=s2(x); int lst; for(int i=2;i<=x;i=lst+1) { lst=x/(x/i); tmp=(tmp-get(x/i)*(ll)(s1(lst)-s1(i-1)+mod)%mod+mod)%mod; if(lst==x)break; } mp[x]=tmp; return tmp; } int main() { freopen("in.txt","r",stdin); scanf("%d",&n); init(); printf("1\n%lld",get(n)); return 0; }
相关文章推荐
- bzoj 4916: 神犇和蒟蒻 杜教筛
- bzoj 4916: 神犇和蒟蒻 (杜教筛+莫比乌斯反演)
- BZOJ 4916 神犇和蒟蒻(杜教筛)
- 【杜教筛】BZOJ4916[神犇(JZ)和蒟蒻(ZZK)]题解
- [杜教筛] BZOJ 4916 神犇和蒟蒻
- [BZOJ 4916]神犇和蒟蒻
- BZOJ 4916: 神犇和蒟蒻 杜教筛 数学
- [BZOJ4916]神犇和蒟蒻
- 【BZOJ4916】神犇和蒟蒻(杜教筛)
- 【BZOJ4916】神犇和蒟蒻 杜教筛
- 【BZOJ4916】神犇和蒟蒻(杜教筛)
- bzoj 4916: 神犇和蒟蒻
- bzoj 4916: 神犇和蒟蒻【欧拉函数+莫比乌斯函数+杜教筛】
- BZOJ 4916 神犇和蒟蒻
- [bzoj4916]神犇和蒟蒻
- BZOJ4916 神犇和蒟蒻 【欧拉函数 + 杜教筛】
- BZOJ 4916 神犇和蒟蒻
- [bzoj4916] 神犇和蒟蒻
- bzoj 4916 神犇和蒟蒻
- [bzoj4916] 神犇和蒟蒻 [杜教筛]