bzoj2301: [HAOI2011]Problem b 莫比乌斯反演
来源:互联网 发布:程序员的电脑配置 编辑:程序博客网 时间:2024/05/16 06:38
裸的反演+一个区间的容斥
#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>#include <cstring>using namespace std;#define maxn 50100bool vis[maxn];int sum[maxn],mu[maxn],prim[maxn],tot;void init(){ mu[1]=1; for(int i=2;i<=50000;i++) { if(!vis[i]) { tot++;prim[tot]=i;mu[i]=-1; } for(int j=1;j<=tot&&prim[j]*i<=50000;j++) { vis[i*prim[j]]=1; if(i%prim[j]==0) { mu[prim[j]*i]=0; break; } else { mu[i*prim[j]]=-mu[i]; } } } for(int i=1;i<=50000;i++) { sum[i]=sum[i-1]+mu[i]; }}int solve(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(){ init(); int n,a,b,c,d,k; scanf("%d",&n); while(n--) { scanf("%d%d%d%d%d",&a,&b,&c,&d,&k); a--;c--; int ans=solve(b/k,d/k)-solve(a/k,d/k)-(solve(b/k,c/k)-solve(a/k,c/k)); printf("%d\n",ans); } return 0;}
0 0
- bzoj2301: [HAOI2011]Problem b 莫比乌斯反演
- BZOJ2301 [HAOI2011]Problem b(莫比乌斯反演)
- BZOJ2301: [HAOI2011]Problem b 莫比乌斯反演
- 【bzoj2301】[HAOI2011]Problem b 莫比乌斯反演
- Bzoj2301: [HAOI2011]Problem b:莫比乌斯反演
- [BZOJ2301][HAOI2011]Problem b(莫比乌斯反演)
- Bzoj2301 [HAOI2011]Problem b 莫比乌斯反演
- 【BZOJ2301】【HAOI2011】Problem b 莫比乌斯反演
- [BZOJ2301][HAOI2011]Problem b(莫比乌斯反演)
- bzoj2301 [HAOI2011]Problem b(莫比乌斯反演)
- 【BZOJ2301】【HAOI2011】Problem B(莫比乌斯反演)
- [BZOJ2301][HAOI2011]Problem b(莫比乌斯反演)
- 【BZOJ2301】【HAOI2011】Problem b 莫比乌斯反演+分块+前缀和
- 【bzoj2301】[HAOI2011]Problem b 莫比乌斯反演+线性筛法+数论分块
- BZOJ2301: [HAOI2011]Problem b 莫比乌斯反演+容斥原理
- [莫比乌斯反演+容斥+分块求和] BZOJ2301: [HAOI2011]Problem b
- 【容斥+莫比乌斯反演】BZOJ2301 [HAOI2011]Problem b
- bzoj2301 [HAOI2011]Problem b (莫比乌斯函数)
- 基于boost 的苹果apns消息推送实现(1)
- \r \n有什么区别
- UVa 12657 Boxes in a Line
- IOZone安装使用
- Cocos 给精灵着色
- bzoj2301: [HAOI2011]Problem b 莫比乌斯反演
- 这五种情况必须“裸辞”
- HDOJ 4259 Double Dealing(置换群)
- request,session,application三者关系
- python各种类型转换-int,str,char,float,ord,hex,oct等
- OCCS软件云工厂搭台招贤
- Android开发笔记
- XML 和 java对象相互转换
- 动态脚本加速