图论:Prufer编码-Cayley定理

BZOJ1430:运用Cayley定理解决树的形态统计问题

由Prufer编码可以引申出来一个定理:Cayley

内容是不同的n结点标号的树的数量为n^(n-2)

换一种说法就是一棵无根树,当知道结点总数的时候,其最多可能有n^(n-2)种形态

这只是形态而已

对于BZOJ1430这道题

题目的打架关系可以用无根树来描述

除了形态之外,还要考虑打架的顺序,一共(n-1)!种

乘起来即可

 1 #include<cstdio>
 2 const int mod=9999991;
 3 int n;
 4 long long ans=1;
 5 int main()
 6 {
 7     scanf("%d",&n);
 8     for(int i=1;i<=n-2;i++)
 9         ans=(ans*n)%mod;
10     for(int i=1;i<=n-1;i++)
11         ans=(ans*i)%mod;
12         printf("%lld",ans);
13     return 0;
14 }

 

posted @ 2018-08-05 15:26  静听风吟。  阅读(154)  评论(0编辑  收藏  举报