Description

  我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案。小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个。由于方案数较大,你只需要输出其除以1000000007的余数即可。

Input

  输入一行,包含4个空格分开的正整数,依次为N,K,L和H。

Output

  输出一个整数,为所求方案数。


  这道题有两种做法- -

  1.递推

  我们先设在一段区间[l,r]间选择n个元素,且它们的gcd为k*i的选择方案是f[i]。

  显然,[l,r]内能被k*i整除的数有(R-L+1)^n个(R=r/(i*k),L=l/(i*k))。但是,有一些选择是这种(L,L,L,L,L,L,...L),一共有(R-L+1)种,同时还有最大公约数是k*i的倍数的,我们也要减去。

  得到f[i]=(R-L+1)^n-(R-L+1)-f[k*i*a](a>=2 && k*i*a<=L-R+1)。

  输出f[1]即可。

  但是还有特殊情况。就是k在[l,r]间,所以这时f[1]++即可。

  2.mobius反演

  公式还是蛮容易的。。

  mobius公式推导:http://lzy-foenix.gitcafe.io/2015/04/09/BZOJ-3930-CQOI2015-%E9%80%89%E6%95%B0/

  关于阀值与μ的推导:http://www.cnblogs.com/Asm-Definer/p/4434601.html

  PoPoQQQ的两者结合:http://blog.csdn.net/popoqqq/article/details/44917831(画质感人- -)

  My Code

 #include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm> #define mod 1000000007 #define maxn 100000 using namespace std; long long f[maxn+]; long long qvod(long long x,long long k)
{
long long ans=;
while(k!=)
{
if(k&)ans=ans*x%mod;
x=x*x%mod;
k>>=;
}
return ans;
} int main()
{
int a,b,k,n;
scanf("%d%d%d%d",&n,&k,&a,&b);
int l=a/k,r=b/k;
if(a%k)l++;
for(int i=maxn;i>=;i--)
{
int L=l/i,R=r/i;
if(l%i)L++;
if(l<=r)
{
f[i]=qvod(R-L+,n);
f[i]=(f[i]-(R-L+)+mod)%mod;
for(int j=i*;j<=maxn;j+=i)f[i]=(f[i]-f[j]+mod)%mod;
}
}
if(l==)f[]++;
printf("%lld",(f[]+mod)%mod);
return ;
}

  忽视奇怪的快速幂

【递推】BZOJ 3930: [CQOI2015]选数的更多相关文章

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

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

  2. bzoj 3930: [CQOI2015]选数【递推】

    妙啊 这个题一上来就想的是莫比乌斯反演: \[ f(d)=\sum_{k=1}^{\left \lceil \frac{r}{d} \right \rceil}\mu(k)(\left \lceil ...

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

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

  4. bzoj 3930: [CQOI2015]选数

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

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

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

  6. bzoj 3930: [CQOI2015]选数【快速幂+容斥】

    参考:https://www.cnblogs.com/iwtwiioi/p/4986316.html 注意区间长度为1e5级别. 则假设n个数不全相同,那么他们的gcd小于最大数-最小数,证明:则gc ...

  7. BZOJ 3930: [CQOI2015]选数 莫比乌斯反演 + 杜教筛

    求 $\sum_{i=L}^{R}\sum_{i'=L}^{R}....[gcd_{i=1}^{n}(i)==k]$   $\Rightarrow \sum_{i=\frac{L}{k}}^{\fra ...

  8. 3930: [CQOI2015]选数|递推|数论

    题目让求从区间[L,H]中可反复的选出n个数使其gcd=k的方案数 转化一下也就是从区间[⌈Lk⌉,⌊Hk⌋]中可反复的选出n个数使其gcd=1的方案数 然后f[i]表示gcd=i的方案数.考虑去掉全 ...

  9. 【BZOJ】3930: [CQOI2015]选数

    题意 从区间\([L, R]\)选\(N\)个数(可以重复),问这\(N\)个数的最大公约数是\(K\)的方案数.(\(1 \le N, K \le 10^9, 1 \le L \le R \le 1 ...

随机推荐

  1. MyBatis(3.2.3) - One-to-many mapping

    In the sample domain model, a tutor can teach one or more courses. This means that there is a one-to ...

  2. memcached缓存机制+微软缓存机制使用详解

    1. why Memcached 1.1   一台web服务器上,iis接收的请求数是有限的,当访问量超大的时候,网站访问就会遇到瓶颈了,处理方式就是运用多了服务器把请求数分流(集群),对外公布的就一 ...

  3. 【Cocos2d入门教程六】Cocos2d-x事件篇之触摸

    Cocos游戏当中产生一个事件时,可以有多个对象在监听该事件,所以有优先级(Priority).优先级越高(Priority值越小),事件响应越靠前. 关系图: 新 事件分发机制:在2.x 版本事件处 ...

  4. 微信之Android各版本列表

    微信在不断地更新迭代,ios微信下载点击这里立即开始(手机电脑都可以,电脑端要安装iTunes),每个版本都放出一些新的功能或修复相关错误,详情可以点击下面的版本链接进行查看.(这里有Android微 ...

  5. CSS之perspective

    <!DOCTYPE html> <html> <head> <style> #div1 { position: relative; height: 15 ...

  6. win7下将主分区转换成逻辑分区

    在了解怎么转换之前,先搞清楚主分区,扩展分区,逻辑分区的基本概念. 主分区,也称为主磁盘分区,和扩展分区.逻辑分区一样,是一种分区类型.主分区中不能再划分其他类型的分区,因此每个主分区都相当于一个逻辑 ...

  7. OpenGL7-1-快速绘制接口(使用高效的函数接口进行绘制)

    代码下载 #include "CELLWinApp.hpp"#include <gl/GLU.h>#include <assert.h>#include & ...

  8. ZStack中的编程技巧

    1. 像函数一样使用的宏 //这个宏,用来被其他宏使用,构造一个正确有效的表达式.这个适合于一些离散语句的组合,不适合函数的重新命名 #define st(x)      do { x } while ...

  9. ubuntu 12.04 clang 3.4 安装

    作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4137402.html 1.添加clang源 deb http://llvm.org/apt/ ...

  10. 关于html的下载功能

    新项目基本告一段落,第一次完成前后端分离的集成,遇到的坑自然不少. 来说说第一天遇到的其中一个坑吧. ——关于下载的问题... 以前的做法,大家都喜爱用<a></a>标签吧.而 ...