「HNOI2008」明明的烦恼 - prufer序列
Contents
给出标号为 到 的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树?
题解
首先要知道一个叫「prufer序列」的东西。
首先,从有标号无根树生成「prufer序列」的方法我就不瞎逼逼了。 其次,一个「prufer序列」唯一对应一棵有标号无根树。 再次,一棵 个节点的有标号无根树的「prufer序列」的长度为 ,树中度为 的点在「prufer序列」中的出现次数是 。
设一共有 个被限制度的点, 为第 个节点的度,,表示被限制度的点在序列中出现了 次。
考虑这些点的位置:
对于序列中剩下的 个点,就可以随便放了,所以整体上就是
上式化简得:
代码不想贴了。。我羞耻的没有写高精度。。
Author: Sulfur6
Origin: http://sulfur6.github.io
Link: http://sulfur6.github.io/bzoj1005/
本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可