【bzoj3561】DZY Loves Math VI 莫比乌斯函数
2018-01-03 13:30
316 查看
Description
给定正整数n,m。求
Input
一行两个整数n,m。
Output
一个整数,为答案模1000000007后的值。
Sample Input
5 4
Sample Output
424
HINT
数据规模:
1<=n,m<=500000,共有3组数据。
题解
Orz YZH
预处理后面那个i,j即可
复杂度为调和级数的复杂度。
代码
给定正整数n,m。求
Input
一行两个整数n,m。
Output
一个整数,为答案模1000000007后的值。
Sample Input
5 4
Sample Output
424
HINT
数据规模:
1<=n,m<=500000,共有3组数据。
题解
Orz YZH
预处理后面那个i,j即可
复杂度为调和级数的复杂度。
代码
#include<bits/stdc++.h> #define ll long long #define inf 1000000000 #define mod 1000000007 using namespace std; inline int read() { int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } int n,m,ans,tot,miu[500005],p[500005]; int a[500005],sum[500005]; bool flag[500005]; void prepration() { miu[1]=1; for (int i=2;i<=n;i++) { if (!flag[i]){p[++tot]=i;miu[i]=-1;} for (int j=1;j<=tot&&p[j]*i<=n;j++) { flag[i*p[j]]=1;miu[i*p[j]]=-miu[i]; if (i%p[j]==0){miu[i*p[j]]=0;break;} } } } inline int mul(int x,int y) { if (y==1) return x; int t=mul(x,y>>1); t=(ll)t*t%mod; if (y&1) t=(ll)t*x%mod; return t; } int main() { n=read();m=read();if (n<m) swap(n,m); prepration(); for (int i=1;i<=n;i++) a[i]=1; for (int d=1;d<=m;d++) { int x=mul(d,d),y=0; for (int i=1;i<=n/d;i++) { a[i]=(ll)a[i]*i%mod;sum[i]=(sum[i-1]+a[i])%mod; } for (int D=1;D<=n/d;D++)if (miu[D]) { int t=mul(D,2*d); y=(y+(ll)t*miu[D]%mod*sum[n/d/D]%mod*sum[m/d/D]%mod)%mod; } ans=(ans+(ll)x*y%mod)%mod; } printf("%d",ans); return 0; }
相关文章推荐
- bzoj3561 DZY Loves Math VI 莫比乌斯函数
- BZOJ3561:DZY Loves Math VI(莫比乌斯反演+线性筛)
- BZOJ3561: DZY Loves Math VI
- 【BZOJ3561】DZY Loves Math VI 莫比乌斯反演
- BZOJ3561 - DZY Loves Math VI
- 【bzoj3561】DZY Loves Math VI
- bzoj3561 DZY Loves Math VI
- 「BZOJ3561」DZY Loves Math VI
- BZOJ3561 DZY Loves Math VI
- BZOJ3561: DZY Loves Math VI
- [bzoj3561] DZY Loves Math VI
- BZOJ 3561 DZY Loves Math VI(莫比乌斯反演)
- ●BZOJ 3561 DZY Loves Math VI
- BZOJ 3561 DZY Loves Math VI
- bzoj 3512: DZY Loves Math IV【欧拉函数+莫比乌斯函数+杜教筛】
- 2017.10.9 DZY Loves Math VI 失败总结
- 【BZOJ 3561】 3561: DZY Loves Math VI (莫比乌斯,均摊log)
- BZOJ_P3561 DZY Loves Math VI(数论+莫比乌斯反演)
- 【BZOJ】3561: DZY Loves Math VI
- 【BZOJ 3561】 DZY Loves Math VI