标签:style blog http color io os ar strong sp
Uva 11609 - Team ( 组合数学 + 二项式性质 + 快速幂取模 )
题意: 有N个人,选一个或多个人参加比赛,其中一名当队长,有多少种方案? (如果参赛者完全相同但是队长不同,也算是一种情况) [ 1<=n <= 10^9 ]
分析:
这题要用到组合式公式的性质
转化之后快速幂取模轻松搞定之
代码:
//Uva 11609 - Team /* 组合数公式 + 二项式系数性质 + 快速幂 手动自己推 -> F[n] = C(n,1)*1 + C(n,2)*2 + C(n,n)*n -> F[n] = Σ((i*C(n,i)) -> F[n] = Σ(C(n,i)*C(i,1)) -> F[n] = n* Σ(c(n-1,i-1)) -> F[n] = n* 2^(n-1) Σ(c(n-1,i-1)) 1<= i <= n 所以是全集, == 2^(n-1) */ #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef unsigned long long ULL; #define MOD 1000000007 ULL pow_mod(ULL a,ULL b) { ULL ans = 1; while(b) { if(b & 1) ans = ans * a % MOD; a = (a%MOD) * (a%MOD) % MOD; b >>= 1; } return ans; } void Orz() { int cas = 1 , t; ULL ans, n; scanf("%d",&t); while(t--) { scanf("%llu",&n); printf("Case #%d: ",cas++); printf("%llu\n",(pow_mod(2,n-1)*n) % MOD); } } int main() { Orz(); return 0; }
Uva 11609 - Team ( 组合数学 + 二项式性质 + 快速幂取模 )
标签:style blog http color io os ar strong sp
原文地址:http://www.cnblogs.com/BigBallon/p/4043945.html