From ZRQ,很好的计数题
我们可以发现这$len=r-l+1$个数中有一些是必须被查到的,即它们不是一些数的倍数,它们的数目$imp$可以通过一次埃氏筛求出。
在一个排列中可怜查到某个位置时就不用检查了,那这个位置上一定是这个排列中第$imp$和必须被查的数,我们不妨从$imp$到$len$枚举这个这个位置$i$。那么这个位置上的数有$imp$种可能,答案乘上$imp$;前面这$i$个数中要塞上$i-imp$个不必须的数,答案乘上$C_{len-imp}^{i-imp}$;最后是这个点前后各有$(i-1)!$和$(len-i)$种排列,答案也要乘上这两个。最后答案即
$\sum\limits_{i=imp}^{len}imp*C_{len-imp}^{i-imp}*(i-1)!*(len-i)!$
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=1e7+;
const long long mod=1e9+;
long long facs[N],inv[N];
long long l,r,len,imp,ans;
bool mark[N];
long long qpow(long long x,long long k)
{
if(k==) return x;
long long tmp=qpow(x,k/);
return k%?tmp*tmp%mod*x%mod:tmp*tmp%mod;
}
void prework()
{
len=r-l+,facs[]=inv[]=;
for(int i=;i<=len;i++)
facs[i]=facs[i-]*i%mod;
inv[len]=qpow(facs[len],mod-);
for(int i=len-;i;i--)
inv[i]=inv[i+]*(i+)%mod;
for(long long i=l;i<=r;i++)
if(!mark[i])
{
imp++;
for(long long j=*i;j<=r;j+=i)
mark[j]=true;
}
}
long long C(long long n,long long m)
{
return facs[n]*inv[m]%mod*inv[n-m]%mod;
}
int main ()
{
scanf("%lld%lld",&l,&r),prework();
for(int i=imp;i<=len;i++)
ans+=imp*C(len-imp,i-imp)%mod*facs[i-]%mod*facs[len-i]%mod*i%mod,ans%=mod;
printf("%lld",ans);
return ;
}
解题:JXOI 2018 游戏的更多相关文章
-
[JXOI 2018] 游戏 解题报告 (组合数+埃氏筛)
interlinkage: https://www.luogu.org/problemnew/show/P4562 description: solution: 注意到$l=1$的时候,$t(p)$就 ...
-
[JXOI 2018] 守卫 解题报告 (DP)
interlinkage: https://www.luogu.org/problemnew/show/P4563 description: solution: 注意到对于范围$[l,r]$,$r$这 ...
-
JXOI 2018 简要题解
目录 「JXOI2018」游戏 题意 题解 代码 「JXOI2018」守卫 题意 题解 代码 「JXOI2018」排序问题 题意 题解 代码 总结 「JXOI2018」游戏 题意 可怜公司有 \(n\ ...
-
[HNOI 2018]游戏
Description 题库链接 有 \(n\) 个房间排成一列,编号为 \(1,2,...,n\) ,相邻的房间之间都有一道门.其中 \(m\) 个门上锁,其余的门都能直接打开.现在已知每把锁的钥匙 ...
-
「JXOI 2018」 排序问题
题目链接 戳我 \(Solution\) \(50\ pts\) 我们来看一下题目,可以很容易的写出来答案的式子: \[\frac{(n+m)!}{a_1!a_2!...a_{tot}!}\] \(a ...
-
JXOI 2018滚粗记
--Update5.2 成绩出了,见后文 听说省选VAN写游记是传统,本蒟蒻也来发一篇吧. DAY 0 本来以为省选不在JKFZ举行的结果又是在JKFZ,本校作战感觉终究会是好一些吧,和jyh一起向教 ...
-
2000G电脑大型单机游戏合集
激活码 游戏名称(ctrl+F查找) 下载链接005875 艾迪芬奇的记忆 游戏下载链接http://pan.baidu.com/s/1t2PYRAj546_1AcOB-khJZg554158 暗影: ...
-
jshzoi
解题报告——2018级2016第二学期第一周作业 解题报告——2018级2016第二学期第一周作业 D 算24 题目描述 描述 给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个 ...
-
手游折扣app排行榜前10名_2018哪个折扣app最低最好
2018游戏圈白皮书发布,PC端游的份额继续下降,页游的比例也在下降,但手游的比例持续3年上升.以渠道为阵营,逐渐小的平台和公会被逐渐淘汰.流量集中在少数几个大的平台.但是这样带来的问题是,平台越来越 ...
随机推荐
-
C#的网络适配器操作
网络的相关设置在项目开发中有较多的应用,有时候需要在项目中对网络信息进行相关设置. 现在提供提供几种相关的辅助方法类. (1).IP地址 /// <summary> /// IP地址 // ...
-
[ActionScript 3.0] AS3.0 水面波纹效果
import flash.geom.Point; import flash.display.BitmapData; import flash.filters.DisplacementMapFilter ...
-
任务:写一个tomcat自启动脚本
写一篇<gitlab无法启动了应该怎么办>
-
android adt自带eclipse无法设置ndk路径(找不到NDK配置)
分步阅读 到android sdk官网下载r23版本的adt时自带的eclipse没有设置ndk路径的地方,通过Install New Software 发现无法更新,那么如何解决这个问题呢? 方便他 ...
-
宝更容易使用比读IC卡信息的工具
编程语言:VC++ 更新时间:2014.10.23 操作系统:windowAll 工具:PCSC读卡器 在上一个博文<<解惑:NFC手机怎样轻松读取银行卡信息?>>中,介绍了支 ...
-
html5部分相关
滚动速度属性 scrollamount 例子<marquee scrollamount="3">这个速度是3</marquee> <marquee s ...
-
Django常见问题
1.什么是中间件? 中间件是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出. 中间件一般做认证或批量请求处理,django中的中间 ...
-
Java基础知识提要
1. 简述Java的基本历史 java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机.冰箱等 2. 简单写出Java特 ...
-
thinkphp5分页传参
$name = input('get.searchKey/s'); if($name != ""){ $this->assign('searchKey', $name); $ ...
-
ALSA声卡驱动的DAPM(一)-DPAM详解
最近使用tinymix 调试相应的音频通道,但是一直不知道音频通道的原理是什么.所以百度了一下,百度结果是与DPAM有关. 一.DAPM简介: DAPM是Dynamic Audio Power Man ...