当前位置: 代码迷 >> 综合 >> UVa11609 Teams
  详细解决方案

UVa11609 Teams

热度:99   发布时间:2023-12-15 07:48:32.0

题目

UVa11609 Teams

题解

一眼看出来是这个式子 ni=1C(n,i)?i ,先选i个人然后随便选一个当队长,化了半天化不出来。

换了个思路,先确定队长,再选队员,那就是这个式子 n?n?1i=0C(n?1,i) ,看到后面那一坨sigma感觉好像是杨辉三角的一层的和,画了画发现杨辉三角每一层的和依次是1,2,4,8,恩这不就出来了吗。

所以我们最后得到一个结论 ni=1C(n,i)?i=n?n?1i=0C(n?1,i)=n?2n?1

代码

//QWsin
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int MOD=1e9+7;ll Pow(ll x,int p)
{ll ret=1;for(;p;p>>=1,x=x*x%MOD) if(p&1) ret=ret*x%MOD;return ret;
}int main()
{int T,n,kase=0;cin>>T;while(T--) {scanf("%d",&n);printf("Case #%d: %lld\n",++kase,Pow(2,n-1)*n%MOD);}return 0;
}