n个人里选k个人有C(n, k)中方法,再从里面选一人当队长,有k中方法。
所以答案就是
第一步的变形只要按照组合数公式展开把n提出来即可。
#include <cstdio> typedef long long LL;
const LL M = ; LL pow(int p)
{
LL ans = , base = ;
while(p)
{
if(p & ) ans = (ans * base) % M;
p >>= ;
base = (base * base) % M;
}
return ans;
} int main()
{
//freopen("in.txt", "r", stdin);
int T;
scanf("%d", &T);
for(int kase = ; kase <= T; kase++)
{
int n;
scanf("%d", &n);
LL ans = pow(n-);
printf("Case #%d: %lld\n", kase, (ans * n) % M);
} return ;
}
代码君