题目大意:给你$a,b,c,d,k(1\leqslant a,b,c,d,k\leqslant 5\times10^4)$,求$\displaystyle\sum\limits_{x=a}^b\displaystyle\sum\limits_{y=c}^d[(x,y)==k]$

题解:下文中令$n\leqslant m$先考虑求$\sum\limits_{i=1}^n\sum\limits_{j=1}^m[(i,j)==k]$
$$
\begin{align*}
\def\dsum{\displaystyle\sum\limits}
令f(p)&=\dsum_{i=1}^n\dsum_{j=1}^m[(i,j)==p]\\
令F(p)&=\dsum_{p|k}f(k)\\
    &=\dsum_{p|k}\dsum_{i=1}^n\dsum_{j=1}^m[(i,j)==k]\\
    &=\dsum_{i=1}^n\dsum_{j=1}^m[p|(i,j)]\\
    &=\left\lfloor\dfrac{n}{p}\right\rfloor\cdot \left\lfloor\dfrac{m}{p}\right\rfloor\\
莫比乌&斯反演得:\\
\therefore f(p)&=\dsum_{p|k}\mu\Big(\dfrac{k}{p}\Big)F(k)\\
            &=\dsum_{i=1}^n\mu(i)\left\lfloor\dfrac{n}{ip}\right\rfloor\cdot\left\lfloor\dfrac{m}{ip}\right\rfloor\\
\end{align*}\\
令g(p)=\dsum_{i=1}^p\mu(i)\\
然后容斥一下就好了\\
$$

卡点:

C++ Code:

#include <cstdio>
#define maxn 50010
using namespace std;
int miu[maxn], plist[maxn], ptot;
bool isp[maxn];
void sieve(int n) {miu[1] = 1;for (int i = 2; i <= n; i++) {if (!isp[i]) {miu[i] = -1;plist[ptot++] = i;}for (int j = 0; j < ptot, i * plist[j] <= n; j++) {int tmp = i * plist[j];isp[tmp] = true;if (i % plist[j] == 0) {miu[tmp] = 0;break;}miu[tmp] = -miu[i];}}for (int i = 2; i <= n; i++) miu[i] += miu[i - 1];
}
inline int min(int a, int b) {return a < b ? a : b;}
int solve(int n, int m, int k) {n /= k, m /= k;int tmp = min(n, m);int ans = 0, l, r;for (l = 1; l <= tmp; l = r + 1) {r = min(n / (n / l), m / (m / l));ans += (miu[r] - miu[l - 1]) * (n / l) * (m / l);}return ans;
}
int Tim, a, b, c, d, k;
int main() {sieve(50000);scanf("%d", &Tim);while (Tim --> 0) {scanf("%d%d%d%d%d", &a, &b, &c, &d, &k);printf("%d\n", solve(b, d, k) - solve(a - 1, d, k) - solve(b, c - 1, k) + solve(a - 1, c - 1, k));}return 0;
}

转载于:https://www.cnblogs.com/Memory-of-winter/p/9523943.html

[bzoj2301][HAOI2011]Problem b相关推荐

  1. BZOJ2301: [HAOI2011]Problem b

    2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MB Submit: 6435  Solved: 2986 [Submi ...

  2. BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】

    2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MB Submit: 4032  Solved: 1817 [Submi ...

  3. BZOJ2301:[HAOI2011]Problem b(莫比乌斯反演,容斥)

    Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数 ...

  4. bzoj2301: [HAOI2011]Problem b懵逼乌斯反演

    属于结果的和好求但是结果不好求的题 (轻易能得到以k的倍数为最大公约数的对数,但是不好直接求k) 所以一波反演结束 其实反演的时候完全没有反演的感觉,就是不停地恒等变形 算是懵逼乌斯反演最简单的例题 ...

  5. BZOJ2301: [HAOI2011]Problem b(莫比乌斯反演)

    Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数 ...

  6. [bzoj2301] [HAOI2011]Problem b

    Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数 ...

  7. BZOJ 2301 [HAOI2011]Problem b

    2301: [HAOI2011]Problem b Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函 ...

  8. [POI2007]ZAP-Queries [HAOI2011]Problem b 莫比乌斯反演

    1,[POI2007]ZAP-Queries ---题面--- 题解: 首先列出式子:$$ans = \sum_{i = 1}^{n}\sum_{j = 1}^{m}[gcd(i, j) == d]$ ...

  9. [HAOI2011]Problem c

    链接 P2523 [HAOI2011]Problem c 想法还是很巧妙的. 其实只是问一个先后顺序,因为编号相同的话,那么\(id\)小的就在前面,\(id\)大的就在后面. 所以我们考虑的是到底有 ...

最新文章

  1. jquery 属性操作
  2. 计算机三级考试题库网络,计算机三级网络试题及答案解析
  3. boost的chrono模块操作时钟对象的测试程序
  4. 都说它是年度Android机皇,【上手】都说它是年度Android机皇,Galaxy Note10到底怎么样?...
  5. 《OD大数据实战》MongoDB环境搭建
  6. Nginx图片剪裁模块探究 http_image_filter_module
  7. 求职学习笔记|并发编程知识点常见问题总结(一)
  8. 小米MIX 4真机亮屏照曝光?真全面屏 边框窄到窒息
  9. 如何在html指定css,如何在LESS CSS嵌套类上指定html标记?
  10. dell vfoglight
  11. 使用bootbox.js(二级务必提交书面和数字到数字中国)
  12. python柱形图绘制_Python Excel 绘制柱形图
  13. Python_将conda里的环境导入到pychram中
  14. Jmeter使用教程(图文并茂)|实战干货
  15. Java面向对象基础练习题(含答案超详细)
  16. 计算机安装系统后鼠标无法使用,重装系统后鼠标不能用
  17. InsecureProgramming-master——abo3
  18. S5P4418 使用SD卡启动Android系统
  19. 如何编制试算平衡表_利用Excel制作总账表试算平衡表
  20. 英语长难句之非谓语动词作状语与独立主格-学习笔记

热门文章

  1. 【转】Eclipse下编写C++程序——CDT环境搭建
  2. Python网络编程:IO多路复用
  3. [bzoj1797][Ahoi2009]Mincut 最小割
  4. |洛谷|分治|P2799 国王的魔镜
  5. 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞
  6. 合成孔径成像算法与实现_声呐二维成像技术
  7. 【错误记录】Git 使用报错 ( no changes added to commit (use “git add“ and/or “git commit -a“) )
  8. 【错误记录】Android Studio 4.2.1 编译报错 ( 设置支持的 Java 和 Kotlin 版本 | java.lang.BootstrapMethodError )
  9. 【Android 安装包优化】资源混淆 ( AAPT2 资源编译工具 | resources.arsc 资源映射表 工作机制 )
  10. 【组合数学】递推方程 ( 非齐次部分是指数的情况 | 非齐次部分是指数的情况示例 )