prefur序列

(prefur)序列给出了序列和无根树之间的一一对应关系

树转化序列

依照下面的办法可以找到序列,重复操作直到只剩下两个点:

  1. 找到一个度数为1,并且编号最小的点(这个性质保证了唯一对应,原因是下面的2并且方便了还原)

  2. 将这个点的父亲加入序列,然后将这个点删除

可以发现,我们这个序列长度(n-2)(原因是每一个数都会在他的父亲处算一次,注意其实本就没啥父亲的说法,只是感觉后加入的较晚成为叶子所以是父亲)

下面是我的看法,我其实认为这是一个按照边个数和标号双排序的序列,但是这个并不严谨,因为这里指的边个数是随时在变化的

序列转树

我们先定义一个点集,表示我们还有多少个点没放回

一开始点集为全集

我们重复下面的操作,直到只剩下两个点:

  1. 取出序列最前面的点(x),并从点集中删除
  2. 取出在点集中但是不在序列中的最小编号点(y)(我们可以考虑这个就是逆运算,我们取出的最前面的点就是最早加入的点,同时叶子也是不会被记录的最小点排下来的,就像转化成子问题一样)
  3. (x)(y)之间连一条边

最后将剩下的两个点相连

显然这样会产生(n-1)条边

(prufer)序列的性质

这个也就是对于上面的一个应用的样子

  1. (prufer)序列和无根树一一对应(由此我们可以得到Cayley定理)
  2. 对于给定度数(d_{1-n})的无根树共有(frac{(n-2)!}{prod^{n}_{i=1}(d_{i}-1)!})种情况(证明就是考虑全排列,也是特殊的可重全排列)

实际问题

[HNOI2004]树的计数

也就是上面性质的之间使用

原文地址:https://www.cnblogs.com/zzqdeco/p/12606264.html