BZOJ3994 莫比乌斯反演
来源:互联网 发布:linux shutdown now 编辑:程序博客网 时间:2024/05/17 20:32
SDOI2015题目描述
求
∑ni=1∑mj=1d(ij) ,其中d(x) 表示x 的约数个数和
首先我们证明:
易证:对于
那么就可以推导:
有一个性质:
令
#include<algorithm>#include<cstring>#include<cstdio>using namespace std;typedef long long LL;const int N=50001;int tot,mu[N],is[N],p[N];LL f[N],Ans[1001][1001];template <class T> void read(T &x) { x=0;int f=1;char ch=getchar(); for(;ch<'0'||ch>'9';) {if(ch=='-') f=-1;ch=getchar();} for(;ch>='0'&&ch<='9';) x=x*10+ch-'0',ch=getchar();x*=f;}template <class T> void write(T x) { int num=0,ch[20]; if(x<0) x=-x,putchar('-'); do ch[++num]=x%10+'0',x/=10; while(x); for(;num;) putchar(ch[num--]);putchar('\n');}void prime(int n) { int i,j; mu[1]=1; for(i=2;i<=n;++i) { if(!is[i]) p[++tot]=i,mu[i]=-1; for(j=1;j<=tot&&i*p[j]<=n;++j) { is[i*p[j]]=1; if(i%p[j]==0) {mu[i*p[j]]=0;break;} mu[i*p[j]]=-mu[i]; } mu[i]+=mu[i-1]; } return;}int main() { int n,m,i,j,nex,test;LL ans; for(prime(50000),i=1;i<=50000;++i) for(nex=0,j=1;j<=i;j=nex+1) nex=i/(i/j),f[i]+=(i/j)*(nex-j+1); for(read(test);test;test--) { read(n),read(m); if(n<=1000&&m<=1000&&Ans[n][m]) {write(Ans[n][m]);continue;} if(n>m) swap(n,m); for(ans=nex=0,i=1;i<=n;i=nex+1) { nex=min(n/(n/i),m/(m/i)); ans+=(mu[nex]-mu[i-1])*f[n/i]*f[m/i]; } if(n<=1000&&m<=1000) Ans[n][m]=Ans[m][n]=ans; write(ans); } return 0;}
阅读全文
0 0
- BZOJ3994 莫比乌斯反演
- 【莫比乌斯反演】[BZOJ3994]约数个数和
- bzoj3994 约数个数和 数论&莫比乌斯反演
- 【bzoj3994】[SDOI2015]约数个数和 莫比乌斯反演
- 约数个数和(数论,莫比乌斯反演)BZOJ3994
- bzoj3994/洛谷P3327 莫比乌斯反演
- 【bzoj3994】[SDOI2015]约数个数和 线性筛法+莫比乌斯反演+数论分块
- [BZOJ3994][SDOI2015]约数个数和(莫比乌斯反演)
- 【BZOJ3994】【SDOI2015】约数个数和(莫比乌斯反演)
- [BZOJ3994][SDOI2015]约数个数和(莫比乌斯反演)
- [BZOJ3994][SDOI2015]约数个数和(莫比乌斯反演)
- bzoj3994【莫比乌斯函数】
- 二项式反演,莫比乌斯反演。
- 莫比乌斯反演
- 莫比乌斯反演
- 莫比乌斯反演
- 莫比乌斯反演
- 莫比乌斯反演
- kvo实现导航栏透明
- UML建模图实战笔记
- 7月1日关于博客备案说明
- BZOJ 4152: [AMPPZ2014]The Captain 题解 【贪心】【SPFA】
- 当scrollview嵌套多个recycleview,页面滑动卡顿
- BZOJ3994 莫比乌斯反演
- 【poj1151】Atlantis(矩形面积并+线段树+扫描线)
- linux CentOS下yum安装MemCached
- Quartz中时间表达式的设置-----corn表达式
- Java解析xml的四种方法介绍
- SRS3.0 流叠图 RuntimeError: dictionary changed size during iteration
- java设计模式---单例
- 温习(一)——快速幂
- Agile&DevOps究竟谁是魔法棒