排列组合

  蛮逗的……

  这题题干描述的就一股浓浓的Kruskal的气息……很容易就想到是求一个n个点的完全图的生成树个数,然后由于有序,再乘一个n-1的排列数(n-1条边的全排列)即(n-1)!

  但是我一下就卡在了 完全图的生成树个数这个地方……怎么也想不出来……后来看了题解,原来这是一个奇葩的结论:【n^(n-2)】

  好吧剩下的就是水了……完全无压力……

  Cayley公式

【BZOJ】【1430】小猴打架_Cayley公式【BZOJ】【1430】小猴打架_BZOJ_02
 1 /**************************************************************
 2     Problem: 1430
 3     User: Tunix
 4     Language: C++
 5     Result: Accepted
 6     Time:176 ms
 7     Memory:804 kb
 8 ****************************************************************/
 9  
10 //BZOJ 1430
11 #include<cstdio>
12 typedef long long LL;
13 int main(){
14     int n,p=9999991;
15     LL ans=1;
16     scanf("%d",&n);
17     for(int i=1;i<=n-2;++i) ans=ans*n%p;
18     for(int i=1;i<=n-1;++i) ans=ans*i%p;
19     printf("%lld\n",ans);
20 }
View Code