Loading

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]树的计数

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

posted @ 2020-03-31 16:47  zzqDeco  阅读(169)  评论(0编辑  收藏  举报