BZOJ 2301 - 莫比乌斯反演 + 前缀和 + 分块计算
来源:互联网 发布:淘宝店铺发布宝贝品牌 编辑:程序博客网 时间:2024/05/19 15:20
题意:对于给出的
首先用容斥原理将一个询问拆成4个。然后,一种可行的转化是求一种可行的转化是先令
因此,我们可以设
在1257那道题里面,我们曾经利用过一个结论:
// BZOJ 2301#include <cstdio>#include <cstring>#include <algorithm>using namespace std; const int N=50000+5; #define rep(i,a,b) for (int i=a; i<=b; i++) #define dep(i,a,b) for (int i=a; i>=b; i--) #define read(x) scanf("%d", &x) #define fill(a,x) memset(a, x, sizeof(a)) /* 筛Mobius函数的过程: 思想一:一边计算miu函数,一边筛质数; 思想二:每个数只被其最小的质数筛去 */ bool vis[N]; int miu[N], T, a, b, c, d, k, prime[N], sum[N], s1, s2, s3, s4; void get_Mobius() { int tot=0; miu[1]=1; fill(vis, false); rep(i,2,N) { if (!vis[i]) { prime[++tot]=i; vis[i]=true; miu[i]=-1; } for (int j=1; j<=tot && prime[j]*i<=N; j++) { int k=prime[j]*i; vis[k]=true; if (i%prime[j]==0) { miu[k]=0; break; } else miu[k]=-miu[i]; } } sum[0]=0; rep(i,1,N) sum[i]=sum[i-1]+miu[i]; } int query(int n, int m) { int last=0, ret=0; if (n>m) swap(n, m); for (int i=1; i<=n; i=last+1) { last=min(n/(n/i), m/(m/i)); ret+=(n/i)*(m/i)*(sum[last]-sum[i-1]); } return ret; }int main(){ get_Mobius(); read(T); while (T--) { read(a); read(b); read(c); read(d); read(k); a--; c--; int s1=query(b/k, d/k), s4=query(a/k, c/k); int s2=query(a/k, d/k), s3=query(c/k, b/k); printf("%d\n", s1-s2-s3+s4); } return 0;}
0 0
- BZOJ 2301 - 莫比乌斯反演 + 前缀和 + 分块计算
- bzoj 2301 -莫比乌斯函数反演+分块优化
- 线性筛求莫比乌斯反演函数+分块+前缀和
- 【BZOJ2301】【HAOI2011】Problem b 莫比乌斯反演+分块+前缀和
- SPOJ7001 Visible Lattice Points 莫比乌斯反演+分块+前缀和
- SPOJ4491 Primes in GCD Table 莫比乌斯反演+分块+前缀和
- [莫比乌斯反演 积性函数前缀和] BZOJ 2693 jzptab
- BZOJ 3529 莫比乌斯反演 + 离线 + 树状数组动态维护前缀和
- [BZOJ 2301] Problem b【莫比乌斯反演/容斥原理/分块】
- BZOJ 2301: [HAOI2011]Problem b(莫比乌斯反演 + 容斥原理 + 分块优化)
- BZOJ 2301: [HAOI2011]Problem b(莫比乌斯反演,分块,容斥)
- Bzoj 2301: [HAOI2011]Problem b(莫比乌斯反演+除法分块)
- BZOJ 2301 Problem b (莫比乌斯反演+区间容斥+分块)
- bzoj 2301 莫比乌斯反演
- bzoj 2301 莫比乌斯反演
- BZOJ 2301 莫比乌斯反演
- HDU 6053 TrickGCD(莫比乌斯反演+前缀和)
- HYSBZ 2301 Promblem b 莫比乌斯反演+分块
- iOS开发NSTimer闪烁问题
- 个兼容库很容易和之前的 Android Support Library 22.1混淆,都是兼容库,
- 数据查询及分组的有关的知识点
- 数据库压缩备份|还原
- 正则取嵌套标签内容
- BZOJ 2301 - 莫比乌斯反演 + 前缀和 + 分块计算
- Pentaho 5.4.0 安装及mysql配置
- BZOJ1996: [Hnoi2010]chorus 合唱队|动态规划
- 为何要学编程?如何学编程?用什么语言最好?有什么好书?
- OC—dictionary
- mysql 查看锁表解锁
- cvCvtPixToPlane & cvCvtPlanetoPix
- git 终端命令
- IOS(UI)_UILabel(标签)