Codeforces Round #309 (Div. 1) A(组合数学)
题目:http://codeforces.com/contest/553/problem/A
题意:给你k个颜色的球,下面k行代表每个颜色的球有多少个,规定第i种颜色的球的最后一个在第i-1种颜色的球的最后一个的前面
思路:首先我们想如果是第i种颜色,我们首先必须把这个颜色留下一个,留下的这个球前面的球的个数是前面颜色的总和+这个颜色数-1,
我们想这个颜色的位置数如何安排,即 C(总座位数,要安排的个数),i-1种颜色也是相同的道理,所以我们推出公式
累加球的个数 sum
当前颜色的球的个数num
那么当前颜色的安排个数 即 C(sum-1,num-1)
然后累乘所有的方案数即是答案
这里我们是用卢卡斯定理求的大组合数取模
#include<cmath> #include<cstdio> #define ll long long #define mod 1000000007 using namespace std; const int maxn = 10005; ll dp[maxn],inv[maxn],fac[maxn],inv_fac[maxn]; void init() {inv[0]=inv[1]=inv_fac[0]=fac[0]=1;dp[1]=0;dp[2]=1;for(int i=2; i<maxn; i++) inv[i]=inv[mod%i]*(mod-mod/i)%mod;for(int i=1; i<maxn; i++) fac[i]=fac[i-1]*i%mod;for(int i=1; i<maxn; i++) inv_fac[i]=inv_fac[i-1]*inv[i]%mod;for(int i=3; i<maxn; i++) dp[i]=(i-1)*(dp[i-2]+dp[i-1])%mod; } ll C(int n,int m) {return fac[n]*inv_fac[m]%mod*inv_fac[n-m]%mod; } int main() {init();ll n,x;ll sum=0;ll flag=1; scanf("%lld",&n);for(int i=0;i<n;i++){scanf("%lld",&x);sum+=x;flag=(flag*C(sum-1,x-1))%mod; } printf("%lld",flag); }
转载于:https://www.cnblogs.com/Lis-/p/10683242.html
Codeforces Round #309 (Div. 1) A(组合数学)相关推荐
- Codeforces Round #309 (Div. 2) A. Kyoya and Photobooks 字符串水题
A. Kyoya and Photobooks Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...
- Codeforces Round #309 (Div. 1)D. Nudist Beach 二分+bfs
题目:http://codeforces.com/contest/553/problem/D 在一个无向图中,有若干坏点,选择一个不包含坏点的集合,使得集合中p值最小的点的p值最大.一个点的p值=集合 ...
- Codeforces Round #309 (Div. 2) C
题意: 就是给出总共同拥有k种颜色.每种颜色有ki种,排列必须满足第i+1种的最后一种颜色必须在第i种最后一种颜色的后面,其它颜色任意.总共同拥有多少种排列点的方法. 分析: 如果d[i]表示前i种的 ...
- Codeforces Round #309 (Div. 1)
A. Kyoya and Colored Balls 大意: 给定$k$种颜色的球, 第$i$种颜色有$c_i$个, 一个合法的排列方案满足最后一个第$i$种球的下一个球为第$i+1$种球, 求合法方 ...
- Codeforces Round #740 (Div. 2) F. Top-Notch Insertions 线段树 / 平衡树 + 组合数学
传送门 文章目录 题意: 思路: 题意: 思路: 考虑最终的序列是什么鸭子的,首先序列肯定单调不降,也就是a1≤a2≤a3≤...≤ana_1\le a_2\le a_3\le ...\le a_na ...
- Codeforces Round #732 (Div. 2) D. AquaMoon and Chess 组合数学 + 找规律
传送门 文章目录 题意: 思路: 题意: 给你一个010101串,当且仅当某个111的某一边i+1,i−1i+1,i-1i+1,i−1有111,这个111可以跟i+2,i−2i+2,i-2i+2,i− ...
- Codeforces Round #724 (Div. 2) F. Omkar and Akmar 组合数学 + 博弈
传送门 文章目录 题意: 思路: 题意: 思路: 首先我们先来研究一下这个游戏,手画几个会惊奇的发现,后手这个b怎么怎么画都赢啊???对,没错,就是怎么画都赢,下面我们来证明一下为什么后手怎么画都赢. ...
- Codeforces Round #631 (Div. 2) D. Dreamoon Likes Sequences 思维 + 组合数学
传送门 文章目录 题意: 思路: 题意: 给你d,modd,modd,mod,让你求能构造出如下序列aaa的个数模modmodmod: 思路: 首先可以发现aaa的长度不能超过log2dlog_2dl ...
- C. Tyler and Strings(组合数学,树状数组维护前缀和)(Codeforces Round #775 (Div. 1, based on Moscow Open Olympiad i)
对我来说比较困难的一题了,尝试着自己写了一下,调不出来遂放弃. Codeforces Round #775 (Div. 1, based on Moscow Open Olympiad in Info ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
最新文章
- python变量名称跟着循环,在Python中使用列表中的名称循环创建新变量
- 干货-iOS、mac开源项目及库,以后我也会持续更新。
- 【入门2】分支结构 (今天刷洛谷了嘛)
- WebAPI Action的几种返回值类型
- 送给程序员:关于性格内向者的10个误解(转)
- 10月11 小结: 你又贪玩了不是?
- 惠普m132nw清零方法_惠普132nw硒鼓型号怎么加墨 惠普132硒鼓芯片清零
- php导入mib表,Linux snmp导入MIB库
- 联想计算机不识别硬盘分区,联想笔记本进PE不识别硬盘
- 【错误记录】Google Play 上架报错 ( 对于在 APK 中使用该权限的应用,您必须设置隐私权政策 | 生成并托管 隐私政策 )
- 基于SVG的绘制多边形jQuery插件
- Leetcode 307.区域检索-数组可修改
- 背单词app软件测试与评估
- 关于前端 后端 数据库 时间的设置与传递
- uniapp 微信小程序如何解决发版后,旧版本缓存问题
- 哭的时候没人哄,我学会了坚强
- 贾樟柯赵涛宣布结婚:8月已领证 威尼斯拍婚照
- flex项目中报Unable to resolve resource bundle menu for locale zh_CN.
- 盛极而衰:回顾 Netscape Navigator 浏览器的一生
- kriging插值在web端的应用含kriging.js下载地址