UVa 11609 Teams (组合数学)
2016-12-22 21:58
731 查看
UVa 11609 Teams
题目大意:
有n(1≤n≤109)个人,选一个或者多个人参加比赛,其中一名当队长.两种方案相同,当且仅当人员组成和队长相同,问有多少种方案.输出方案数除以1000000007的余数.
题目分析:
(推个式子都要推半天,吃枣药丸)当选择1个人的时候有C1n种方案,每种方案队长安排有1种.
当选择2个人的时候有C2n种方案,每种方案队长安排有2种.
…
ans=1∗C1n+2∗C2n+...+n∗Cnn
=∑ni=1i∗Cin
对于任意i,有
i∗Cin=i∗n!i!(n−i)!
=n(n−1)!(i−1)![(n−1)−(i−1)]!
=n∗Ci−1n−1
所以
ans=n∗∑ni=1Ci−1n−1
=n∗2n−1
代码:
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; const int MOD=1000000007; int pow_mod(int x,int y) { int ret=1; while(y>0) { if(y&1) ret=1ll*ret*x%MOD; x=1ll*x*x%MOD;y>>=1; } return ret; } int main() { int T,kase=0,n; scanf("%d",&T); while(T--) { scanf("%d",&n); printf("Case #%d: %lld\n",++kase,1ll*n*pow_mod(2,n-1)%MOD); } return 0; }
相关文章推荐
- Uva 11609 - Teams 解题报告(组合数学)
- UVa 11609 - Teams (组合数学)
- UVA11609 - Teams(组合数学+快速幂)
- UVa 11609 Teams (组合数学)
- uva 11609 - Teams(组合数学+快速幂)
- UVa11609 - Teams(组合数学)
- UVA 11609 - Teams 组合、快速幂取模
- uva 11609 组合数学
- UVA 11609 (组合数学)
- UVA 11609 - Teams 组合、快速幂取模
- Teams(uva11609+组合)
- UVa 11609 Teams(快速幂+数学)
- Teams(uva11609+组合)
- Teams(uva11609+组合)
- uva11609(组合数学,快速幂)
- UVA-11609-Teams-组合计数
- UVa-11609 Teams(组合+快速幂)
- UVA 11609 - Teams(数论+推理+快速幂)
- UVa 10780 - How do you add? (简单DP 组合数学 隔板法)
- UVA 10910 Marks Distribution(组合数学 或 递推)