洛谷P2624 [HNOI2008]明明的烦恼

题目描述
题解

来补一补 purfer \text{purfer} purfer 序。

可以考虑每次选择编号最小的叶子,然后删掉并且在序列中新增加与它连边的节点。这样会得到一个长度为 n − 2 n-2 n2 的序列。

考虑如何将一个 n − 2 n-2 n2 的序列变成一棵树。首先我们可以得到每个点的度为序列中出现次数 + 1 +1 +1 ,然后我们每次选择度数为 1 1 1 中编号最小的点与当前序列位置的节点相连,并且两个点的度都 − 1 -1 1 ,这样我们就可以得到那棵树。

对于这题来说,考虑到度数有限制的节点在 purfer \text{purfer} purfer 序中出现次数为度数 − 1 -1 1 ,而序列中没填的位置可以填上度数未做要求的节点。所以设 c n t cnt cnt 为度数有限制的节点数量, s u m = ∑ d [ i ] − 1 sum=\sum d[i]-1 sum=d[i]1 ,则答案为 ( n − 2 ) ! ( n − 2 − s u m ) ! ∏ ( d [ i ] − 1 ) ! ( n − c n t ) n − 2 − s u m \frac{(n-2)!}{(n-2-sum)!\prod(d[i]-1)!}(n-cnt)^{n-2-sum} (n2sum)!(d[i]1)!(n2)!(ncnt)n2sum

由于有高精代码就被我咕掉啦。

你可能感兴趣的:(purfer序)