bzoj 4174 tty的求助 数论 莫比乌斯反演
来源:互联网 发布:量化交易 不会编程 编辑:程序博客网 时间:2024/05/16 15:31
题意:求
先膜PoPoQQQ大爷。
然后先不考虑n,m,分三部分算。
设
然后因为
然后因为
然后加到一起,不含d的项
#include <bits/stdc++.h>using namespace std;#define N 510000#define mod 998244353#define ll long longint n,m;double x;int mu[N],prime[N],ip[N],cnt,ans;void liner_shuffle(){ mu[1]=1; for(int i=2;i<=n;i++) { if(!ip[i])prime[++cnt]=i,mu[i]=-1; for(int j=1;j<=cnt&&i*prime[j]<=n;j++) { ip[i*prime[j]]=1; mu[i*prime[j]]=-mu[i]; if(i%prime[j]==0) { mu[i*prime[j]]=0; break; } } }}int S(int x){return (ll)x*(x+1)/2%mod;}int qpow(int x,int y){ int ret=1; while(y) { if(y&1)ret=(ll)ret*x%mod; x=(ll)x*x%mod;y>>=1; } return ret;}int main(){ scanf("%d%d%lf",&n,&m,&x); liner_shuffle(); ans=((ll)S(n)*S(m)%mod-(ll)S(n)*m%mod-(ll)S(m)*n%mod)%mod; for(int i=1;i<=n&&i<=m;i++) { int t=(i+(ll)2*i*(ll)(x/i))%mod,sum=0; for(int j=i,k=1;j<=n&&j<=m;j+=i,k++) sum=(sum+(ll)mu[k]*(n/j)%mod*(m/j)%mod)%mod; ans=(ans+(ll)t*sum%mod)%mod; } ans=(ans+mod)%mod; ans=(ll)ans*qpow(2,mod-2)%mod; printf("%d\n",ans); return 0;}
0 0
- bzoj 4174 tty的求助 数论 莫比乌斯反演
- BZOJ 4174 tty的求助 莫比乌斯反演
- [莫比乌斯反演] BZOJ 4174 tty的求助
- BZOJ 4176 Lucas的数论 莫比乌斯反演
- bzoj 4176 Lucas的数论 莫比乌斯反演
- [数论][莫比乌斯反演] BZOJ 4816: 数字表格
- BZOJ 3601 一个人的数论 莫比乌斯反演+高斯消元
- bzoj 3601: 一个人的数论 高斯消元&莫比乌斯反演
- [莫比乌斯反演 高斯消元 数学技巧] BZOJ 3601 一个人的数论
- BZOJ 4176: Lucas的数论 莫比乌斯反演 杜教筛
- 【数论】(莫比乌斯反演)关于莫比乌斯反演的小结
- 数论 莫比乌斯反演
- BZOJ_P2820 YY的GCD(数论+莫比乌斯反演)
- 【BZOJ3601】一个人的数论,莫比乌斯反演+高斯消元
- bzoj3601 一个人的数论 莫比乌斯反演+高斯消元
- [数论][莫比乌斯反演][杜教筛] BZOJ 3512: DZY Loves Math IV
- bzoj 2301 莫比乌斯反演
- bzoj 2301 莫比乌斯反演
- Leetcode 400. Nth Digit 第n个数字 解题报告
- Mac设置Root密码
- 数组的延伸(浅复制、深复制)
- 8张图理解Java
- 548.Intersection of Two Arrays II-两数组的交 II(容易题)
- bzoj 4174 tty的求助 数论 莫比乌斯反演
- SSH无密码登录配置小结
- struct和typedef struct
- openfire插件编译异常
- Android中Excutor线程池的简单使用
- AngularJs必填、比较、格式验证
- jquery表单验证
- 深度学习优化方法
- Deep Neural Decision Forests