题目链接

这题求[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. selenium中get_cookies()和add_cookie()的用法

    在用selenium爬取网页的时候,有时候需要登陆,这时候用selenium获取cookie和携带cookie是很方便的,获取cookie可以通过内置的函数get_cookies(),它得到的是一组c ...

  2. ubuntu 16.4下hadoop配置伪分布式时出现的坑

    在ubuntu16.4下spark的单机/伪分布式配置我在此就不在一一赘述,详情请点击如下连接: Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04 我出现问题是 ...

  3. spring4.1.8扩展实战之四:感知spring容器变化(SmartLifecycle接口)

    本章是<spring4.1.8扩展实战>的第四篇,如果业务上需要在spring容器启动和关闭的时候做一些操作,可以自定义SmartLifecycle接口的实现类来扩展,本章我们通过先分析再 ...

  4. Vue.js的列表数据的同步更新方法

    这次给大家带来Vue.js的列表数据的同步更新方法,Vue.js列表数据同步更新方法的注意事项有哪些,下面就是实战案例,一起来看一下. 数组的 push(),pop(),shift(),unshift ...

  5. 16/7/11_PHP-数据库操作

    PHP支持哪些数据库 PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,当前主流的数据库有MsSQL,MySQL,Sybase,Db2,Oracle,PostgreSQL ...

  6. memcpy不能复制内存重叠区域,memmove可以拷贝重叠内存

    http://blog.csdn.net/li_ning_/article/details/51418400 下面s和s2指向的内存区域有重叠,memcpy不能正确复制,src赋值给dst时,可能会修 ...

  7. pycharm常用快捷键 --- keymap==ecplise

    F5 进入函数逐行调试 F6 执行完一行代码 F8 执行到下一个断点处 ctrl + d    --删除一行代码 ALT + 上/下 箭头   代码上下移动 ALT + 左/右 箭头    左--返回 ...

  8. [转]Scikit-learn使用总结

    1 scikit-learn基础介绍 1.1 估计器(Estimator) 估计器,很多时候可以直接理解成分类器,主要包含两个函数: fit():训练算法,设置内部参数.接收训练集和类别两个参数. p ...

  9. (转)Linux下编译安装log4cxx

    Linux下编译安装log4cxx 一个项目的服务器端在Linux平台下,用到了开源日志库log4cxx,这个库是apache项目的一个子库.功能很不错.下面记录下它的编译和安装过程. log4cxx ...

  10. kmp(所有长度的前缀与后缀)

    http://poj.org/problem?id=2752 Seek the Name, Seek the Fame Time Limit: 2000MS   Memory Limit: 65536 ...