[CQOI2015]选数

题目描述

我们知道,从区间\([L,H]\)(\(L\)和\(H\)为整数)中选取\(N\)个整数,总共有\((H-L+1)^N\)种方案。

小\(z\)很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的\(N\)个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。

你的任务很简单,小\(z\)会告诉你一个整数\(K\),你需要回答他最大公约数刚好为\(K\)的选取方案有多少个。由于方案数较大,你只需要输出其除以\(1000000007\)的余数即可。

输入输出格式

输入格式:

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

输出格式:

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

说明

对于\(100\%\)的数据,\(1 \le N, K \le 10^9\),\(1 \le L \le H \le 10^9\),\(H-L \le10^5\)


暴力反演一波你会发现要求这个式子

\[\sum_{d=1}^{\lfloor\frac{r}{k}\rfloor}\mu(d)(\lfloor\frac{\lfloor\frac{r}{k}\rfloor}{d}\rfloor-\lfloor\frac{\lceil\frac{l}{k}\rceil-1}{d}\rfloor)
\]

需要使用杜教筛,不想学,发现还有一个神仙的\(DP\)

令\(r=\lfloor\frac{r}{k}\rfloor,l=\lceil\frac{l}{k}\rceil\)

问题等价于问互质的方案数

引理:区间\([l,r]\)任意两个不相等数的最大公约数的大小不会超过\(r-l\)

证明:取任意互质的数\(a,b\),将它们同乘\(m\),而\(r-l\)取最小值时\((b-a)\times m \ge m\),得证

(证明是从别处抄的,说实话不太懂QAQ)

设\(dp_{i}\)代表以\(i\)为最大公约数的数量,且所选的数不全相等。

考虑\(g_i\)为\(i\)为约数的数量,同样也是所选的不全相等。

(不全相等是处于统计方便考虑)

显然

\[g_i=(\lfloor\frac{r}{i}\rfloor-\lfloor\frac{l-1}{i}\rfloor)^n-(\lfloor\frac{r}{i}\rfloor-\lfloor\frac{l-1}{i}\rfloor)
\]

根据容斥原理

\[dp_i=g_i-\sum_{i|d}^rdp_d
\]

注意要特判\(l=1\),因为这个时候可以全相等


Code:

#include <cstdio>
#define ll long long
const int N=1e5+10;
const ll mod=1e9+7;
ll n,k,l,r;
ll dp[N];
ll quickpow(ll d,ll k)
{
ll f=1;
while(k)
{
if(k&1) f=f*d%mod;
d=d*d%mod;
k>>=1;
}
return f;
}
int main()
{
scanf("%lld%lld%lld%lld",&n,&k,&l,&r);
l=(l-1)/k+1,r=r/k;
for(ll i=1;i<=r-l;i++)
{
ll cnt=(r/i-(l-1)/i);
dp[i]=quickpow(cnt,n)-cnt;
}
for(ll i=r-l;i;i--)
for(ll j=i<<1;j<=r-l;j+=i)
(dp[i]-=dp[j])%=mod;
printf("%lld\n",(dp[1]+(l==1)+mod)%mod);
return 0;
}

2018.10.20

洛谷 [CQOI2015]选数 解题报告的更多相关文章

  1. 洛谷 P1783 海滩防御 解题报告

    P1783 海滩防御 题目描述 WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和仓库总是被敌方派人偷袭 ...

  2. 洛谷 P4597 序列sequence 解题报告

    P4597 序列sequence 题目背景 原题\(\tt{cf13c}\)数据加强版 题目描述 给定一个序列,每次操作可以把某个数\(+1\)或\(-1\).要求把序列变成非降数列.而且要求修改后的 ...

  3. 【搜索】【入门】洛谷P1036 选数

    题目描述 已知 n个整数x1​,x2​,…,xn​,以及1个整数k(k<n).从nn个整数中任选kk个整数相加,可分别得到一系列的和. 例如当n=4,k=3,4个整数分别为3,7,12,19时, ...

  4. 洛谷1087 FBI树 解题报告

    洛谷1087 FBI树 本题地址:http://www.luogu.org/problem/show?pid=1087 题目描述 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全 ...

  5. 洛谷 P1272 重建道路 解题报告

    P1272 重建道路 题目描述 一场可怕的地震后,人们用\(N\)个牲口棚\((1≤N≤150\),编号\(1..N\))重建了农夫\(John\)的牧场.由于人们没有时间建设多余的道路,所以现在从一 ...

  6. 洛谷 P1490 买蛋糕 解题报告

    P1490 买蛋糕 题目描述 野猫过生日,大家当然会送礼物了(咳咳,没送礼物的同志注意了哈!!),由于不知道送什么好,又考虑到实用性等其他问题,大家决定合伙给野猫买一个生日蛋糕.大家不知道最后要买的蛋 ...

  7. 洛谷 P2607 [ZJOI2008]骑士 解题报告

    P2607 [ZJOI2008]骑士 题目描述 Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬. 最近发生了一件可怕的事情,邪恶的Y国发动了一 ...

  8. 洛谷 P3349 [ZJOI2016]小星星 解题报告

    P3349 [ZJOI2016]小星星 题目描述 小\(Y\)是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有\(n\)颗小星星,用\(m\)条彩色的细线串了起来,每条细线连着两颗小星星. 有一 ...

  9. 洛谷 P3765 总统选举 解题报告

    P3765 总统选举 题目背景 黑恶势力的反攻计划被小C成功摧毁,黑恶势力只好投降.秋之国的人民解放了,举国欢庆.此时,原秋之国总统因没能守护好国土,申请辞职,并请秋之国人民的大救星小C钦定下一任.作 ...

随机推荐

  1. HTTP-Http状态码301和302的区别

    官方解释: 301 redirect: 301 代表永久性转移(Permanently Moved) 302 redirect: 302 代表暂时性转移(Temporarily Moved ) 共同点 ...

  2. thinkphp-PHP实现pdf导出功能

    Thinkphp框架引用tcpdf插件,插件下载地址:待续... 代码编写前先引入tcpdf整个文件夹到项目目录的ThinkPHP文件夹下 如:/ThinkPHP/Library/Vendor/tcp ...

  3. n点游戏

    n点游戏 24点游戏是非常经典而简单的小游戏,从一堆扑克牌中抽取4张,向其中添加运算符号并使其运行结果恰等于24,这叫作24点游戏. 现在我们不再是组合24,而是组合出给定的数字n,但要求只可以利用任 ...

  4. MongoDB入门---简介

    最近呢,刚好有一些时间,所以就学习了一下新的数据库类型MongoDB.要想了解这个MongoDB,我们首先需要了解一个概念,那就是nosql(not only sql).一下就是官方的概念: NoSQ ...

  5. 在WPF中创建可换肤的用户界面

    原文:在WPF中创建可换肤的用户界面 在WPF中创建可换肤的用户界面.                                                                  ...

  6. P1509 找啊找啊找GF

    P1509 找啊找啊找GF 题目背景 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见." "诶,别再见啊..." 七夕...七夕...七 ...

  7. Lambda方式左连接有Linq方式左连接

    网上查到的直接使用Join+DefaultIfEmpty的方式是错误的,实际生成SQL是两表先内联接,然后再LEFT JOIN.经过查证,参考资料,最终得到如下两种方式的左连接写法: public v ...

  8. 用命令部署WebPart

    Webpart一般是一个wsp文件,可以在VS里面通过右键来部署.但一般真正的生产服务器上面是不会安装VS的,所以一般情况下是把wsp文件拷贝到服务器上面然后启动PowerShell用命令来部署. 部 ...

  9. ionic 入口禁止加载其他页面

    .state('memberOrders', { prefetchTemplate: false, url: '/memberOrders', templateUrl: '/MemberOrders' ...

  10. 「日常训练」 Soldier and Number Game (CFR304D2D)

    题意 (Codeforces 546D) 给定一个数x=a!b!" role="presentation">x=a!b!x=a!b!的形式,问其中有几个质因数. 分 ...