1430: 小猴打架

来源:互联网 发布:网络经营许可证是什么 编辑:程序博客网 时间:2024/04/25 19:01

题目链接

题目大意:n个点,求构成生成树不同连接方式的方案数

题解:首先需要知道prufer编码相关知识,然后就变成裸题了……
由 Cayley定理,n个节点的带标号的形态不同的无根树有n^(n-2)个,然后对于每棵树,生成方式有(n-1)!种(乘法原理),答案=(n-1)!*n^(n-2)

我的收获:get

#include <iostream>#include <algorithm>using namespace std;const int P=9999991;int n;long long ans=1;int main(){    cin>>n;    for(int i=1;i<n;i++) ans=ans*i%P;    for(int i=1;i<=n-2;i++) ans=ans*n%P;    cout<<ans<<endl;}