参考:https://www.cnblogs.com/SilverNebula/p/7045199.html

所是反演其实反演作用不大,又是一道做起来感觉诡异的题

转成前缀和相减的形式

\[\sum_{i=1}^{n}\sum_{j=1}^{n}[\frac{i*j}{gcd(i,j)}\leq n]
\]

\[\sum_{d=1}^{n}\sum_{i=1}^{\left \lfloor \frac{n}{d}\right \rfloor}\sum_{j=1}^{\left \lfloor \frac{n}{d}\right \rfloor}[gcd(i,j)==1][i*j\leq\left \lfloor \frac{n}{d} \right \rfloor]
\]

\[\sum_{k=1}^{n}
\mu(k)\sum_{d=1}^{\left \lfloor \frac{n}{k} \right \rfloor}\sum_{i=1}^{\left \lfloor \frac{n}{dk} \right \rfloor}\sum_{j=1}^{\left \lfloor \frac{n}{dk} \right \rfloor}[i*j*d\leq\left \lfloor \frac{n}{k^2} \right \rfloor]
\]

然后是非常神奇的缩小范围……

\[\sum_{k=1}^{\sqrt{n}}\mu(k)\sum_{d=1}^{\left \lfloor \frac{n}{k^2} \right \rfloor}\sum_{i=1}^{\left \lfloor \frac{n}{dk^2} \right \rfloor}\sum_{j=1}^{\left \lfloor \frac{n}{dk^2} \right \rfloor}[i*j*d\leq\left \lfloor \frac{n}{k^2} \right \rfloor]
\]

然后对于这个友好的范围直接枚举就可以了。

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cmath>
  4. using namespace std;
  5. const int N=1000005,m=1000000;
  6. int q[N],mb[N],tot;
  7. long long a,b;
  8. bool v[N];
  9. long long wk(long long n)
  10. {
  11. if(!n)
  12. return 0;
  13. long long re=0ll,tmp=0ll,a=sqrt(n);
  14. for(long long k=1;k<=a;k++)
  15. if(mb[k])
  16. {
  17. tmp=0;
  18. long long b=n/k/k;
  19. for(long long i=1;i*i*i<=b;i++)
  20. {
  21. for(long long j=i+1;j*j*i<=b;j++)
  22. tmp+=(b/(i*j)-j)*6+3;
  23. tmp+=(b/(i*i)-i)*3;
  24. tmp++;
  25. }
  26. re+=mb[k]*tmp;
  27. }
  28. return (re+n)/2;
  29. }
  30. int main()
  31. {
  32. mb[1]=1;
  33. for(int i=2;i<=m;i++)
  34. {
  35. if(!v[i])
  36. {
  37. q[++tot]=i;
  38. mb[i]=-1;
  39. }
  40. for(int j=1;j<=tot&&i*q[j]<=m;j++)
  41. {
  42. int k=i*q[j];
  43. v[k]=1;
  44. if(i%q[j]==0)
  45. {
  46. mb[k]=0;
  47. break;
  48. }
  49. mb[k]=-mb[i];
  50. }
  51. }
  52. scanf("%lld%lld",&a,&b);
  53. printf("%lld\n",wk(b)-wk(a-1));
  54. return 0;
  55. }

51nod 1222 最小公倍数计数【莫比乌斯反演】的更多相关文章

  1. 51NOD 1222 最小公倍数计数 [莫比乌斯反演 杜教筛]

    1222 最小公倍数计数 题意:求有多少数对\((a,b):a<b\)满足\(lcm(a,b) \in [1, n]\) \(n \le 10^{11}\) 卡内存! 枚举\(gcd, \fra ...

  2. 【51nod】1222 最小公倍数计数 莫比乌斯反演+组合计数

    [题意]给定a和b,求满足a<=lcm(x,y)<=b && x<y的数对(x,y)个数.a,b<=10^11. [算法]莫比乌斯反演+组合计数 [题解]★具体 ...

  3. [51Nod 1222] - 最小公倍数计数 (..怎么说 枚举题?)

    题面 求∑k=ab∑i=1k∑j=1i[lcm(i,j)==k]\large\sum_{k=a}^b\sum_{i=1}^k\sum_{j=1}^i[lcm(i,j)==k]k=a∑b​i=1∑k​j ...

  4. 51nod1222 最小公倍数计数 莫比乌斯反演 数学

    求$\sum_{i = 1}^{n} \sum_{j = 1}^{i} [lcm(i, j) \le n]$因为这样不好求,我们改成求$\sum_{i = 1}^{n} \sum_{j = 1}^{n ...

  5. UOJ #54 时空穿梭 —— 计数+莫比乌斯反演+多项式系数

    题目:http://uoj.ac/problem/54 10分还要用 Lucas 定理囧...因为模数太小了不能直接算... #include<cstdio> #include<cs ...

  6. BZOJ 3518 点组计数 ——莫比乌斯反演

    要求$ans=\sum_{i=1}^n \sum_{j=1}^m (n-i)(m-j)(gcd(i,j)-1)$ 可以看做枚举矩阵的大小,然后左下右上必须取的方案数. 这是斜率单增的情况 然后大力反演 ...

  7. luogu3911 最小公倍数之和(莫比乌斯反演)

    link 给定\(A_1,A_2,\dots,A_N\),求\(\sum_{i=1}^N\sum_{j=1}^Nlcm(A_i,A_j)\) \(1\le N\le 50000;1\le A_i\le ...

  8. [51nod1227]平均最小公倍数(莫比乌斯反演+杜教筛)

    题意 求 $\sum_{i=a}^b \sum_{j=1}^i \frac{lcm(i,j)}{i}$. 分析 只需要求出前缀和, $$\begin{aligned}\sum_{i=1}^n \sum ...

  9. 数学:莫比乌斯反演-GCD计数

    Luogu3455:莫比乌斯反演进行GCD计数 莫比乌斯反演就是用来解决这一类问题的,通常f函数是要求的那个,F函数是显然的 这样利用F的结果就可以推出来f的结果 在计算结果的时候整除分快儿一下就可以 ...

随机推荐

  1. There is no PasswordEncoder mapped for the id "null"

    There is no PasswordEncoder mapped for the id "null" 学习了:https://blog.csdn.net/dream_an/ar ...

  2. Codeforces div.2 B. The Child and Set

    题目例如以下: B. The Child and Set time limit per test 1 second memory limit per test 256 megabytes input ...

  3. 微信小程序实战之 pay(支付页面)

    项目目录: 逻辑层: pay.js // pages/pay/pay.js Page({ /** * 页面的初始数据 */ data: { resultType: "", resu ...

  4. 编译iOS使用的.a库文件

    首先是须要编译成.a的源文件 hello.h: #ifndef __INCLUDE_HELLO_H__ #define __INCLUDE_HELLO_H__ void hello(const cha ...

  5. Android开发:怎样隐藏自己的app应用

    本文主要介绍怎样通过改动AndroidManifest.xml清单文件来达到隐藏自身应用的目的,不是隐藏第三方应用.为了不浪费大家时间.特此说明. 转载请注明作者xiong_it和链接:http:// ...

  6. 淘宝API学习之道:淘宝TOP之API接口接入教程

    作为一个中小型站点开发人员,淘宝API的开放大大缩短了站点的开发周期和运作效率.面对海量的数据.开发人员仅仅要细致阅读开发文档,熟悉对应的接口,就能够把数据导入自己的站点,这样就不必望洋兴叹了. 眼下 ...

  7. 百万级PHP网站Poppen.de的架构分享心得

    在了解过世界最大的PHP站点,Facebook的后台技术后, 今天我们来了解一个百万级PHP站点的网站架构:Poppen.de.Poppen.de是德国的一个社交网站,相对Facebook.Flick ...

  8. JIRA运行太慢,修改JVM

    JIRA运行太慢,根据实际实况,修改JVM内存大小 2. 非NT服务修改JVM内存大小 修改%JIRA_HOME%/bin下面的setenv.bat文件,修改JAVA_OPTS这个环境变量 set J ...

  9. jquery全选,取消全选

    近期项目又用到了这个全选和取消全选的操作. 曾经总是自己写纯JS.如今既然知道怎么写了.那怎样用JQ写得更简洁呢.这样也能学到新的东西.假设乎百度一下果然发现了好东东.感谢OSC的iuhoay. 代码 ...

  10. 浅谈JavaScript的面向对象程序设计(三)

    前面已经对JavaScript的面向对象程序设计作了简单的介绍,包括了对象的属性.对象的工厂模式.构造函数和原型等.通过介绍,这些创建对象的方法依然有不少优化和改进的地方. 组合使用构造函数模式和原型 ...