【BZOJ】【1430】小猴打架
排列组合
蛮逗的……
这题题干描述的就一股浓浓的Kruskal的气息……很容易就想到是求一个n个点的完全图的生成树个数,然后由于有序,再乘一个n-1的排列数(n-1条边的全排列)即(n-1)!
但是我一下就卡在了 完全图的生成树个数这个地方……怎么也想不出来……后来看了题解,原来这是一个奇葩的结论:【n^(n-2)】
好吧剩下的就是水了……完全无压力……
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 }