求 $\sum_{i=L}^{R}\sum_{i'=L}^{R}....[gcd_{i=1}^{n}(i)==k]$
 
$\Rightarrow \sum_{i=\frac{L}{k}}^{\frac{R}{k}}\sum_{i'=\frac{L}{k}}^{\frac{R}{k}}....[gcd_{i=1}^{n}(i)==1]$
 
$\Rightarrow \sum_{i=\frac{L}{k}}^{\frac{R}{k}}\sum_{i'=\frac{L}{k}}^{\frac{R}{k}}....\sum_{d|gcd_{i=1}^{n}(i)}\mu(d)$
 
$\Rightarrow\sum_{d=1}^{\frac{R}{d}}\mu(d)(\left \lfloor \frac{R}{kd} \right \rfloor-\left \lfloor \frac{L-1}{kd} \right \rfloor)^n$
 
用杜教筛算莫比乌斯函数前缀和,整除分块算一下就行.
  1. #include<bits/stdc++.h>
  2. #define maxn 1040000
  3. #define M 1000001
  4. #define inf 0x7f7f7f7f
  5. #define ll long long
  6. using namespace std;
  7. ll mod = 1000000007;
  8. void setIO(string s)
  9. {
  10. string in=s+".in";
  11. freopen(in.c_str(),"r",stdin);
  12. }
  13. map<int,ll>ansmu;
  14. int cnt;
  15. bool vis[maxn];
  16. int prime[maxn], mu[maxn];
  17. ll sumv[maxn];
  18. ll qpow(ll base,ll k)
  19. {
  20. ll tmp=1;
  21. while(k)
  22. {
  23. if(k&1) tmp=tmp*base%mod;
  24. base=base*base%mod;
  25. k>>=1;
  26. }
  27. return tmp;
  28. }
  29. void Linear_shaker()
  30. {
  31. mu[1]=1;
  32. int i,j;
  33. for(i=2;i<=M;++i)
  34. {
  35. if(!vis[i]) prime[++cnt]=i, mu[i]=-1;
  36. for(j=1;j<=cnt&&1ll*i*prime[j]<=M;++j)
  37. {
  38. vis[i*prime[j]]=1;
  39. if(i%prime[j]==0)
  40. {
  41. mu[i*prime[j]]=0;
  42. break;
  43. }
  44. mu[i*prime[j]]=-mu[i];
  45. }
  46. }
  47. for(i=1;i<=M;++i) sumv[i]=(sumv[i-1]+mu[i]+mod)%mod;
  48. }
  49. ll get(ll n)
  50. {
  51. if(n<=M) return sumv[n];
  52. if(ansmu[n]) return ansmu[n];
  53. ll i,j,re=0;
  54. for(i=2;i<=n;i=j+1)
  55. {
  56. j=(n/(n/i));
  57. re=(re+(j-i+1)%mod*get(n/i)%mod+mod)%mod;
  58. }
  59. return ansmu[n]=(1ll-re+mod)%mod;
  60. }
  61. int main()
  62. {
  63. // setIO("input");
  64. ll n,k,L,R,i,j,re=0;
  65. scanf("%lld%lld%lld%lld",&n,&k,&L,&R);
  66. L = (L - 1) / k, R = R / k;
  67. Linear_shaker();
  68. for(i=1;i<=R;i=j+1)
  69. {
  70. j=min(R/(R/i), L/i?L/(L/i):inf);
  71. re=(re+qpow(R/i-L/i, n) * (get(j)-get(i-1)+mod)%mod)%mod;
  72. }
  73. printf("%lld\n",re);
  74. return 0;
  75. }

  

BZOJ 3930: [CQOI2015]选数 莫比乌斯反演 + 杜教筛的更多相关文章

  1. 【bzoj3930】[CQOI2015]选数 莫比乌斯反演+杜教筛

    题目描述 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一 ...

  2. luogu3172 [CQOI2015]选数 莫比乌斯反演+杜教筛

    link 题目大意:有N个数,每个数都在区间[L,H]之间,请求出所有数的gcd恰好为K的方案数 推式子 首先可以把[L,H]之间的数字gcd恰好为K转化为[(L-1)/K+1,H/K]之间数字gcd ...

  3. [BZOJ 3930] [CQOI 2015]选数(莫比乌斯反演+杜教筛)

    [BZOJ 3930] [CQOI 2015]选数(莫比乌斯反演+杜教筛) 题面 我们知道,从区间\([L,R]\)(L和R为整数)中选取N个整数,总共有\((R-L+1)^N\)种方案.求最大公约数 ...

  4. BZOJ 3930: [CQOI2015]选数 莫比乌斯反演

    https://www.lydsy.com/JudgeOnline/problem.php?id=3930 https://blog.csdn.net/ws_yzy/article/details/5 ...

  5. BZOJ 4176 Lucas的数论 莫比乌斯反演+杜教筛

    题意概述:求,n<=10^9,其中d(n)表示n的约数个数. 分析: 首先想要快速计算上面的柿子就要先把d(ij)表示出来,有个神奇的结论: 证明:当且仅当a,b没有相同的质因数的时候我们统计其 ...

  6. [复习]莫比乌斯反演,杜教筛,min_25筛

    [复习]莫比乌斯反演,杜教筛,min_25筛 莫比乌斯反演 做题的时候的常用形式: \[\begin{aligned}g(n)&=\sum_{n|d}f(d)\\f(n)&=\sum_ ...

  7. BZOJ 3930: [CQOI2015]选数 递推

    3930: [CQOI2015]选数 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pro ...

  8. 【刷题】BZOJ 3930 [CQOI2015]选数

    Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公 ...

  9. 【BZOJ3930】[CQOI2015]选数 莫比乌斯反演

    [BZOJ3930][CQOI2015]选数 Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律 ...

随机推荐

  1. C#模块初始化注入

    这个功能可以实现很多很有用的功能,比如程序集加密,Hook安装等.英文转载备忘.   原地址:https://www.coengoedegebure.com/module-initializers-i ...

  2. [Udemy] ES 7 and Elastic Stack - part 2

    Section 3: Searching with Elasticsearch query with json 分页返回 Sort full text 的内容不能用来sort, 比如movie的 ti ...

  3. Spring002--实现读写分离(Mysql实现主从复制)

    Spring AOP实现读写分离(Mysql实现主从复制) 本文来自于博客:http://www.cnblogs.com/bjlhx/p/8297460.html 一.背景 一般应用对数据库而言都是“ ...

  4. "SQLServer复制需要有实际的服务器名称才能连接到服务器,请指定实际的服务器名"

    最近在学习SQL SERVER的高级复制技术的时候,遇到一个小问题,就是用本地SQL SERVER连接服务器的数据库时,在查看复制功能的发布服务器时,连接不上,弹出一个错误提示框架,如下:原来在自己本 ...

  5. Mac入门--如何使用brew安装多个PHP版本

    一 安装7.1 1. 安装PHP7.1 brew install php@7.1 2. 修改配置 php-fpm.conf,一般在/usr/local/etc/php下(如果php-fpm.conf中 ...

  6. SpringBoot 使用Mybatis+MySql

    pom配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http: ...

  7. [Web 前端] 012 css 元素溢出

    overflow 当子元素的尺寸超过父元素的尺寸时,需要设置父元素显示溢出的子元素的方式 通过 overflow 属性来设置 概览 参数 释义 visible(默认值) 内容不会被修剪会呈现在元素框之 ...

  8. jquery悬停和移出事件

    $('#hides').mouseover(function () { alert("sdfdsf")}).mouseout(function () { alert("啊 ...

  9. [Codeforces 1199C]MP3(离散化+二分答案)

    [Codeforces 1199C]MP3(离散化+二分答案) 题面 给出一个长度为n的序列\(a_i\)和常数I,定义一次操作[l,r]可以把序列中<l的数全部变成l,>r的数全部变成r ...

  10. 数组去重,排序,重复次数,两个数组合并,两个数组去重,map(),filter(),reduce()

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...