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 }

猜你喜欢

转载自www.cnblogs.com/aininot260/p/9425940.html