#组合计数,容斥定理#U136346 数星星
题目
天上的繁星一闪一闪的,甚是好看。你和你的小伙伴们一起坐在草地上,欣赏这美丽的夜景。
我们假定天上有\(n\)颗星星,它们排成一排,从左往右以此编号为1到\(n\),但是天上的星星实在太多了,你和你的小伙伴
们只能看到其中的\(k\)个星星,所以需要你在这\(n\)颗星星中选出\(k\)颗来进行观测,但是你的小伙伴给你提出了一个要求,
这\(k\)颗星星中,至少存在\(r\)颗星星是连续的,连续是指这些星星的编号连续。
分析
考虑答案可以容斥实现,也就是
\]
实质的过程就是在\(n-k+1\)个位置中选择\(i\)个位置插入长度至少为\(r\)的星星,
然后再在\(n-ir\)颗星星中选出\(k-ir\)颗星星,这样恰好选出\(k\)颗星星
代码
#include <cstdio>
#define rr register
using namespace std;
const int mod=1000000007,N=10000011;
int n,m,G,inv[N],fac[N],ans;
inline signed mo(int x,int y){return x+y>=mod?x+y-mod:x+y;}
inline signed C(int n,int m){return 1ll*fac[n]*inv[m]%mod*inv[n-m]%mod;}
signed main(){
fac[0]=fac[1]=inv[0]=inv[1]=1,scanf("%d%d%d",&n,&m,&G);
for (rr int i=2;i<=n;++i) inv[i]=1ll*(mod-mod/i)*inv[mod%i]%mod;
for (rr int i=2;i<=n;++i) fac[i]=1ll*fac[i-1]*i%mod,inv[i]=1ll*inv[i-1]*inv[i]%mod;
for (rr int i=1;i<=m/G;++i)
ans=mo(ans,1ll*((i&1)?1:(mod-1))*C(n-m+1,i)%mod*C(n-i*G,m-i*G)%mod);
return !printf("%d",ans);
}
#组合计数,容斥定理#U136346 数星星的更多相关文章
- [CTS2019]珍珠(NTT+生成函数+组合计数+容斥)
这题72分做法挺显然的(也是我VP的分): 对于n,D<=5000的数据,可以记录f[i][j]表示到第i次随机有j个数字未匹配的方案,直接O(nD)的DP转移即可. 对于D<=300的数 ...
- BZOJ2839 : 集合计数 (广义容斥定理)
题目 一个有 \(N\) 个 元素的集合有 \(2^N\) 个不同子集(包含空集), 现在要在这 \(2^N\) 个集合中取出若干集合(至少一个), 使得它们的交集的元素个数为 \(K\) ,求取法的 ...
- 51nod1284容斥定理
1284 2 3 5 7的倍数 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数. 例如N = 10, ...
- 2 3 5 7的倍数 (51Nod - 1284)[容斥定理]
20180604 给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数. 例如N = 10,只有1不是2 3 5 7的倍数. Input 输入1个数N(1 <= N <= 10^1 ...
- 题解报告:hdu 4135 Co-prime(容斥定理入门)
Problem Description Given a number N, you are asked to count the number of integers between A and B ...
- HDU1796 How many integers can you find【容斥定理】
题目链接: http://acm.hdu.edu.cn/showproblem.php? pid=1796 题目大意: 给你一个整数N.和M个整数的集合{A1.A2.-.Am}.集合内元素为非负数(包 ...
- Codeforces Round #330 (Div. 2) B. Pasha and Phone 容斥定理
B. Pasha and Phone Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/595/pr ...
- hdu_5213_Lucky(莫队算法+容斥定理)
题目连接:hdu_5213_Lucky 题意:给你n个数,一个K,m个询问,每个询问有l1,r1,l2,r2两个区间,让你选取两个数x,y,x,y的位置为xi,yi,满足l1<=xi<=r ...
- How Many Sets I(容斥定理)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3556 How Many Sets I Time Limit: 2 ...
- HDU - 4135 Co-prime 容斥定理
题意:给定区间和n,求区间中与n互素的数的个数, . 思路:利用容斥定理求得先求得区间与n互素的数的个数,设表示区间中与n互素的数的个数, 那么区间中与n互素的数的个数等于.详细分析见求指定区间内与n ...
随机推荐
- Docker实践之07-数据管理
目录 一.数据卷概述 二.创建数据卷 三.查看数据卷 四.挂载数据卷 五.删除数据卷 六.挂载主机目录或文件 七.挂载数据卷与主机目录/文件的比较 一.数据卷概述 数据卷是一个可供一个或多个容器使用的 ...
- 搭建Windows环境下的多功能免费SSH客户端
关于Windows下的SSH客户端工具,可以有许多选择,从开源免费到商业收费的,零零总总. 免费版: Putty就是最简单的SSH客户端,非常轻量级. Electerm是一个开源可免费使用的跨平台SS ...
- OsgEarth开发笔记(二):Osg3.6.3+OsgEarth3.1+vs2019x64开发环境搭建(中)
上一篇:<OsgEarth开发笔记(一):Osg3.6.3+OsgEarth3.1+vs2019x64开发环境搭建(上)>下一篇:敬请期待- 前言 上一篇编译了osg和osgCurl ...
- Python全栈面试题及知识点总结
Python全栈面试题 Python全栈阶段总结:https://github.com/HkwJsxl/PythonFullStack/tree/master/Notes Python基础 基础 逻辑 ...
- golang中关于map的value类型定义为函数类型时(方法值)的一点点思考
文章的内容仅仅是自己关于map的value类型定义为函数类型时的一点点思考,如有不对的地方,请不吝赐教. 学习过后才知道叫做 方法值. 1.起因 最近在看老项目代码时,看到了一段类似于下面的定义,最开 ...
- linux虚拟机初始配置
1- CentOS7配置静态IP地址: iface="网络接口名"cd /etc/sysconfig/network-scripts/; sed -i 's/^/#/' ifcfg ...
- Java //使用scanner从键盘输入多种类型
1 //1.引入包名 import java.util.Scanner 2 //2.新建Scanner对象 3 Scanner scan = new Scanner(system.in); 4 //3 ...
- body标签下莫名奇妙多了一行空行,原来是编码的问题
之前为了方便,直接在服务器修改文件,然后点保存,但是问题来了,在顶部莫名奇妙多了一个空行,如图1 图1 原来在源代码编辑的代码如图2 图2 但是在FF或者Chrome外部样式却在body里面,而不是h ...
- GPS 方案总结
GPS 方案 搜集网络上关于GPS的方案. redis + mysql redis 用来做设备或用户实时定位的查询. mysql存储历史轨迹.存储时分两部分,一张表做实时查询用.一张表做备份用.如果需 ...
- debian卡顿,造成用户注销现象的原因以及解决方法
现象:当时电脑正在运行,宝塔面板安装初始化应用,一个浏览器,一个虚拟机 解决方法:目前还不清楚--是不是负载过大?好奇怪!