2301: [HAOI2011]Problem b/1101: [POI2007]Zap 莫比乌斯反演
来源:互联网 发布:淘宝的古玩是真的吗 编辑:程序博客网 时间:2024/04/29 22:25
今天决定入坑莫比乌斯反演qwq。
《多年的心头大恨终于解决了系列》
更多关于莫比乌斯反演的问题我打算一会儿写到[总结]数学专题里去
我们用
我们发现直接计算
引入一个
根据莫比乌斯反演,
然后我们分块求解
#include<iostream>#include<cstdio>#define MAXN 50005using namespace std;int sum[MAXN],mobius[MAXN],prime[MAXN];bool flag[MAXN];inline int read(){ int a=0,f=1; char c=getchar(); while (c<'0'||c>'9') {if (c=='-') f=-1; c=getchar();} while (c>='0'&&c<='9') {a=a*10+c-'0'; c=getchar();} return a*f;}inline void prepare(){ mobius[1]=1; for (int i=2;i<MAXN;i++) { if (!flag[i]) prime[++prime[0]]=i,mobius[i]=-1; for (int j=1;j<=prime[0]&&i*prime[j]<MAXN;j++) { flag[i*prime[j]]=1; if (i%prime[j]==0) {mobius[i*prime[j]]=0; break;} mobius[i*prime[j]]=-mobius[i]; } } for (int i=1;i<MAXN;i++) sum[i]=sum[i-1]+mobius[i];}inline int calc(int n,int m){ if (n>m) swap(n,m); int ans=0,pos; for (int i=1;i<=n;i=pos+1) { pos=min(n/(n/i),m/(m/i)); ans+=(sum[pos]-sum[i-1])*(n/i)*(m/i); } return ans;}int main(){ prepare(); int testcase=read(); while (testcase--) { int a=read()-1,b=read(),c=read()-1,d=read(),k=read(); a/=k; b/=k; c/=k; d/=k; int ans=calc(a,c)+calc(b,d)-calc(a,d)-calc(b,c); printf("%d\n",ans); } return 0;}
0 0
- 2301: [HAOI2011]Problem b/1101: [POI2007]Zap 莫比乌斯反演
- 【BZOJ】2301 [HAOI2011]Problem b && 【BZOJ】1101 [POI2007]Zap 莫比乌斯函数+数论分块
- 1101: [POI2007]Zap/2045: 双亲数/2301: [HAOI2011]Problem b
- [BZOJ 2301][HAOI2011] Problem b 莫比乌斯反演
- 2301: [HAOI2011]Problem b|莫比乌斯反演
- bzoj 2301: [HAOI2011]Problem b 【莫比乌斯反演】
- BZOJ 2301: [HAOI2011]Problem b - 莫比乌斯反演
- [莫比乌斯反演] BZOJ 2301 [HAOI2011]Problem b
- BZOJ 2301: [HAOI2011]Problem b【莫比乌斯反演
- bzoj 2301: [HAOI2011]Problem b 莫比乌斯反演
- BOZJ 2301: [HAOI2011]Problem b 莫比乌斯反演
- bzoj 2301: [HAOI2011]Problem b(莫比乌斯反演)
- BZOJ 2301: [HAOI2011]Problem b (莫比乌斯反演)
- BZOJ 1101 [POI2007]Zap 莫比乌斯反演
- BZOJ 1101: [POI2007]Zap|莫比乌斯反演
- [莫比乌斯反演] BZOJ 1101 [POI2007]Zap
- BZOJ 1101: [POI2007]Zap【莫比乌斯反演
- bzoj 1101 [POI2007]Zap 莫比乌斯反演
- wpa_supplicant下行接口浅析
- 难题挑战,第2题被惨虐,请赐教~~
- Python爬虫入门三之Urllib库的基本使用
- ping baidu.com 发包不通
- Android自定义控件—仿仪表盘进度控件ArcProgressBar
- 2301: [HAOI2011]Problem b/1101: [POI2007]Zap 莫比乌斯反演
- Android屏幕适配全攻略(最权威的官方适配指导)
- Maven依赖排除 禁止依赖传递 取消依赖的方法
- git入门(5)-Git revert和git reset版本的回退
- heat创建stack时为何要在keystone新建一个临时project
- RTP/RTCP详解
- 在action中调用去出现java.lang.NullPointerException错误
- C++ const wchar_t*转string
- 按键和LED复用扫描程序