BZOJ 1101 [POI2007]Zap 莫比乌斯反演
来源:互联网 发布:网络推广视频教程 编辑:程序博客网 时间:2024/05/17 02:18
题意:链接
方法:莫比乌斯反演?
解析:
题中求的就是∑1<=x<=a∑1<=y<=b(gcd(x,y)==d)
即可转化为∑1<=x<=a/d∑1<=y<=b/d(gcd(x,y)==1)
又因为∑i=1nμ(i)=n==1?1:0
所以原公式可以转化为∑1<=x<=a/d∑1<=y<=b/d∑d|(x,y)μ(d)
因为d|(x,y) 所以d|x d|y ,那么我们可以把和式提前
即公式变为∑1<=d<=min(a/d,b/d)μ(d)∑1<=x<=a/d且d|x∑1<=y<=b/d且d|y
根据约数研究那道题,原公式可以进一步转化为
∑1<=d<=min(a/d,b/d)μ(d)[a/dd][b/dd]
接下来就可以暴力分块了!
μ(d) 部分维护个前缀和,剩下的因为[a/dd] 与[b/dd] 具有单调不上升性,所以只需要计算每一块就好了。
代码:
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define N 50010using namespace std;int tot,t;int a,b,d;int prime[N];bool f[N];int miu[N];int sum[N];void sieve(){ miu[1]=1; for(int i=2;i<=50000;i++) { if(!f[i]) { prime[++t]=i; miu[i]=-1; } for(int j=1;j<=t&&i*prime[j]<=50000;j++) { f[i*prime[j]]=1; if(i%prime[j]==0) { miu[i*prime[j]]=0; break; }else miu[i*prime[j]]=-miu[i]; } } for(int i=1;i<=50000;i++) { sum[i]=sum[i-1]+miu[i]; }}int main(){ sieve(); scanf("%d",&tot); for(int i=1;i<=tot;i++) { scanf("%d%d%d",&a,&b,&d); int a1=a/d,b1=b/d; int x=min(a1,b1); int pos,ans=0; for(int i=1;i<=x;i=pos+1) { pos=min((a1/(a1/i)),(b1/(b1/i))); ans+=(sum[pos]-sum[i-1])*(a1/i)*(b1/i); } printf("%d\n",ans); }}
0 0
- BZOJ 1101 [POI2007]Zap 莫比乌斯反演
- BZOJ 1101: [POI2007]Zap|莫比乌斯反演
- [莫比乌斯反演] BZOJ 1101 [POI2007]Zap
- BZOJ 1101: [POI2007]Zap【莫比乌斯反演
- bzoj 1101 [POI2007]Zap 莫比乌斯反演
- BZOJ 1101: [POI2007]Zap 莫比乌斯反演
- BZOJ 1101 [POI2007]Zap 莫比乌斯反演
- BZOJ 1101: [POI2007]Zap 莫比乌斯反演
- bzoj 1101: [POI2007]Zap 莫比乌斯反演
- [BZOJ 1101][POI2007]Zap:莫比乌斯反演
- 【BZOJ】【P1101】【POI2007】【Zap】【题解】【莫比乌斯反演】
- 1101: [POI2007]Zap(莫比乌斯反演)
- 莫比乌斯函数(bzoj 1101: [POI2007]Zap)
- bzoj1101: [POI2007]Zap 莫比乌斯反演
- BZOJ1101: [POI2007]Zap 莫比乌斯反演
- 【bzoj1101】[POI2007]Zap 莫比乌斯反演
- [BZOJ1101][POI2007]Zap(莫比乌斯反演)
- 莫比乌斯反演 bzoj1101【Poi2007】Zap
- 股票学习10
- 硬件路由转发原理浅析-清晨补充
- [BZOJ3399] [Usaco2009 Mar]Sand Castle城堡
- 那些神奇的"大师"是如何炼成的(科学、迷信、心理)
- iOS动画之模拟音量振动条
- BZOJ 1101 [POI2007]Zap 莫比乌斯反演
- Decorators and Functional Python
- HDU 2041
- C语言中如何使用宏
- ioS开发零基础教程之支付宝支付iOS开发
- Linux 基本module结构与hello.ko的编写
- hover效果加边框不抖动
- 地址围栏
- resin 4.0 项目的配置