题目链接

这题求[1,n],[1,m]gcd为k的对数。而且没有顺序。

设F(n)为公约数为n的组数个数 
f(n)为最大公约数为n的组数个数

然后在纸上手动验一下F(n)和f(n)的关系,直接套公式就好了。注意要删去重复的。

关于 莫比乌斯反演 的结论

ACdreamers大神的相关博客  莫比乌斯反演   莫比乌斯反演与最大公约数

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long LL;
  4.  
  5. const int maxn=1e6;
  6.  
  7. int prime[maxn+];
  8. bool check[maxn+];
  9. int mu[maxn+];
  10.  
  11. void init()
  12. {
  13. mu[]=;
  14. int tot=;
  15. for(int i=;i<=maxn;i++)
  16. {
  17. if(!check[i])
  18. {
  19. prime[tot++]=i;
  20. mu[i]=-;
  21. }
  22. for(int j=;j<tot;j++)
  23. {
  24. if(i*prime[j]>maxn) break;
  25. check[i*prime[j]]=true;
  26. if(i%prime[j]==)
  27. {
  28. mu[i*prime[j]]=;
  29. break;
  30. }
  31. else
  32. {
  33. mu[i*prime[j]]=-mu[i];
  34. }
  35. }
  36. }
  37. }
  38.  
  39. int main()
  40. {
  41. int T;
  42. int a,b,c,d,k;
  43. init();
  44. scanf("%d",&T);
  45. for(int kase=;kase<=T;kase++)
  46. {
  47. scanf("%d%d%d%d%d",&a,&b,&c,&d,&k);
  48. if(k==)
  49. {
  50. printf("Case %d: 0\n",kase);
  51. continue;
  52. }
  53. b/=k;
  54. d/=k;
  55. if(b>d) swap(b,d);
  56. LL ans=;
  57. for(int i=;i<=b;i++)
  58. ans+=(LL)mu[i]*(b/i)*(d/i);
  59. LL t=;
  60. for(int i=;i<=b;i++)
  61. t+=(LL)mu[i]*(b/i)*(b/i);
  62. ans-=t/;
  63. printf("Case %d: %I64d\n",kase,ans);
  64. }
  65. }

hdu 1695: GCD 【莫比乌斯反演】的更多相关文章

  1. hdu 1695 GCD 莫比乌斯反演入门

    GCD 题意:输入5个数a,b,c,d,k;(a = c = 1, 0 < b,d,k <= 100000);问有多少对a <= p <= b, c <= q <= ...

  2. HDU 1695 GCD 莫比乌斯反演

    分析:简单的莫比乌斯反演 f[i]为k=i时的答案数 然后就很简单了 #include<iostream> #include<algorithm> #include<se ...

  3. hdu 1695 GCD 莫比乌斯

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  4. [BZOJ 2820] YY的gcd(莫比乌斯反演+数论分块)

    [BZOJ 2820] YY的gcd(莫比乌斯反演+数论分块) 题面 给定N, M,求\(1\leq x\leq N, 1\leq y\leq M\)且gcd(x, y)为质数的(x, y)有多少对. ...

  5. HDU 1695 GCD 欧拉函数+容斥定理 || 莫比乌斯反演

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  6. HDU 1695 GCD (莫比乌斯反演)

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  7. HDU 1695 GCD (莫比乌斯反演模板)

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  8. D - GCD HDU - 1695 -模板-莫比乌斯容斥

    D - GCD HDU - 1695 思路: 都 除以 k 后转化为  1-b/k    1-d/k中找互质的对数,但是需要去重一下  (x,y)  (y,x) 这种情况. 这种情况出现 x  ,y ...

  9. ●HDU 1695 GCD

    题链: http://acm.hdu.edu.cn/showproblem.php?pid=1695 题解: 容斥. 莫比乌斯反演,入门题. 问题化简:求满足x∈(1~n)和y∈(1~m),且gcd( ...

随机推荐

  1. s6tu

    # -*- coding: utf-8 -*- # @Time : 2018/03/30 15:20 # @Author : cxa # @File : liuuchnagtu.py # @Softw ...

  2. php 中 http_build_query用法

    http_build_query (PHP 5) http_build_query -- 生成 url-encoded 之后的请求字符串描述string http_build_query ( arra ...

  3. http请求方法,get 对比 post

    本文转自:http://www.w3school.com.cn/tags/html_ref_httpmethods.asp 两种最常用的 HTTP 方法是:GET 和 POST. 什么是 HTTP? ...

  4. Linux_Bash常用脚本

    目录 目录 从用户列表中过滤用户名并创建用户 awktrcut 指令的文本处理 tr指令 cut指令 awk指令 备份文件 测试LFTPServer权限设定 开启Httpd 安装Httpd 批量创建用 ...

  5. APT攻防整理-常用CVE

    常用CVE CVE-- 受影响版本 Windows /Windows /Windows Server /Windows Server R2/Windows Server /Windows Server ...

  6. github信息安全开源课

    尽可能的减少信息差:兄弟们,该知足了,这些资源非常的宝贵了. ### github探索-主题-令人敬畏的名单 令人敬畏的名单: https://github.com/topics/awesome 进入 ...

  7. 读取交货单拣配数量PIKMG(转)

    原文链接:https://www.591sap.com/thread-953-1-1.html SAP交货单交货数量在lips中直接读取,但是拣配数量lfimg,只存在vbfa中,且如果基本计量单位和 ...

  8. Dockerfile设置时区alpine

    背景: 最近在写golang相关代码.其中用到了时间操作的相关函数,如下: nowTime := time.Now() nUnixEndTime := nowTime.Unix() nHour, nM ...

  9. Linux-第二篇常用命令

    1.常用目录文件操作命令 cd:切换目录 格式:cd 目录 ls:显示文件和目录列表.可选参数: -l 列出文件的详细信息 -a 列出当前目录所有文件,包含隐藏文件 ll:查看目录接口,相当于是ls ...

  10. 洛谷 - P3803 - 【模板】多项式乘法(FFT) - FFT

    https://www.luogu.org/problemnew/show/P3803 用反向学习的FFT通过这个东西. #include <bits/stdc++.h> using na ...