In a galaxy far far away there is an ancient game played among the planets. The specialty of the gameis that there is no limitation on the number of players in each team, as long as there is a captain inthe team. (The game is totally strategic, so sometimes less player increases the chance to win). So thecoaches who have a total of N players to play, selects K (1 ≤ K ≤ N) players and make one of themas the captain for each phase of the game. Your task is simple, just find in how many ways a coachcan select a team from his N players. Remember that, teams with same players but having differentcaptain are considered as different team.
题意:给你N个人,在给K,K表示从N 中选出来多少个人。
K个人中让不同的人当队长则表示K种不同的选法。
推导可得出。总共是取出K人的排列组合*K。
->sum=n*2^(n-1)
这里要用快速求幂算法。
#include<stdio.h>
#include<math.h>
const long long mod=1000000007;
int n;
void chuli()
{
long long sum=1,pow=2;
int b=n-1;
while(b>0)
{
if(b&1)sum=(sum*pow)%mod;
b>>=1;
pow=(pow*pow)%mod;
}
printf("%lld\n",(n*sum)%mod);
}
int main()
{
int kj=1,tt;
scanf("%d",&tt);
while(tt--)
{scanf("%d",&n);
printf("Case #%d: ",kj++);
chuli();
}
}