P4430 小猴打架
题目意思就是让你求,在网格图中(任意两点都有边)的生成树的个数(边的顺序不同也算不同的方案).
首先我们考虑一个生成树,由于一定有n-1条边,单单考虑添加边的顺序,根据乘法原理,第一条边有n-1个选择.
第二条边有n-2条选择,直至最后一条半只剩一个选择,所以只考虑边的顺序有!(n-1)中方案
之后考虑树的形态.
这个博客告诉我们一个无根树的形态有n^n-2中方案,由于prufer的编码对应唯一的一棵树的形态.
显然,一棵有 n 个结点的无根树,它的 pruferprufer 编码是唯一的,且有n−2 个可能相同的元素。
所以所有的方案数就是n^n-2.最后算上每一棵树的边的顺序答案ans=!(n-1)*n^(n-2).
同理如果有根树的形态就是n^(n-1)。原因就是在无根树确定以后n个节点都可以是根.