题目: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(组合数学)相关推荐

  1. 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 ...

  2. Codeforces Round #309 (Div. 1)D. Nudist Beach 二分+bfs

    题目:http://codeforces.com/contest/553/problem/D 在一个无向图中,有若干坏点,选择一个不包含坏点的集合,使得集合中p值最小的点的p值最大.一个点的p值=集合 ...

  3. Codeforces Round #309 (Div. 2) C

    题意: 就是给出总共同拥有k种颜色.每种颜色有ki种,排列必须满足第i+1种的最后一种颜色必须在第i种最后一种颜色的后面,其它颜色任意.总共同拥有多少种排列点的方法. 分析: 如果d[i]表示前i种的 ...

  4. Codeforces Round #309 (Div. 1)

    A. Kyoya and Colored Balls 大意: 给定$k$种颜色的球, 第$i$种颜色有$c_i$个, 一个合法的排列方案满足最后一个第$i$种球的下一个球为第$i+1$种球, 求合法方 ...

  5. Codeforces Round #740 (Div. 2) F. Top-Notch Insertions 线段树 / 平衡树 + 组合数学

    传送门 文章目录 题意: 思路: 题意: 思路: 考虑最终的序列是什么鸭子的,首先序列肯定单调不降,也就是a1≤a2≤a3≤...≤ana_1\le a_2\le a_3\le ...\le a_na ...

  6. 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− ...

  7. Codeforces Round #724 (Div. 2) F. Omkar and Akmar 组合数学 + 博弈

    传送门 文章目录 题意: 思路: 题意: 思路: 首先我们先来研究一下这个游戏,手画几个会惊奇的发现,后手这个b怎么怎么画都赢啊???对,没错,就是怎么画都赢,下面我们来证明一下为什么后手怎么画都赢. ...

  8. Codeforces Round #631 (Div. 2) D. Dreamoon Likes Sequences 思维 + 组合数学

    传送门 文章目录 题意: 思路: 题意: 给你d,modd,modd,mod,让你求能构造出如下序列aaa的个数模modmodmod: 思路: 首先可以发现aaa的长度不能超过log2dlog_2dl ...

  9. 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 ...

  10. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

最新文章

  1. python变量名称跟着循环,在Python中使用列表中的名称循环创建新变量
  2. 干货-iOS、mac开源项目及库,以后我也会持续更新。
  3. 【入门2】分支结构 (今天刷洛谷了嘛)
  4. WebAPI Action的几种返回值类型
  5. 送给程序员:关于性格内向者的10个误解(转)
  6. 10月11 小结: 你又贪玩了不是?
  7. 惠普m132nw清零方法_惠普132nw硒鼓型号怎么加墨 惠普132硒鼓芯片清零
  8. php导入mib表,Linux snmp导入MIB库
  9. 联想计算机不识别硬盘分区,联想笔记本进PE不识别硬盘
  10. 【错误记录】Google Play 上架报错 ( 对于在 APK 中使用该权限的应用,您必须设置隐私权政策 | 生成并托管 隐私政策 )
  11. 基于SVG的绘制多边形jQuery插件
  12. Leetcode 307.区域检索-数组可修改
  13. 背单词app软件测试与评估
  14. 关于前端 后端 数据库 时间的设置与传递
  15. uniapp 微信小程序如何解决发版后,旧版本缓存问题
  16. 哭的时候没人哄,我学会了坚强
  17. 贾樟柯赵涛宣布结婚:8月已领证 威尼斯拍婚照
  18. flex项目中报Unable to resolve resource bundle menu for locale zh_CN.
  19. 盛极而衰:回顾 Netscape Navigator 浏览器的一生
  20. kriging插值在web端的应用含kriging.js下载地址

热门文章

  1. py-R-FCN安装
  2. Greenplum 模糊查询 实践
  3. Git--分布式版本控制系统
  4. 架构之路 参考MySpace
  5. 【SAP HANA】关于SAP HANA中带层次结构的Attribute View创建、激活状况下在系统中生成对象的研究...
  6. C# Global定时执行Global文件aTimer处理
  7. 限制页面被pc端访问
  8. 常见网络命令之traceroute命令一起其他常用命令
  9. Drcom账户管理Server端解说
  10. 杭电ACM求平均成绩