prufer序列求法
对于一个无根无向图我们可以应用prufer序列操作使它缩成一个序列。
具体操作
一,每次选出来树中编号最小的点且度数为一(即叶子节点)
二,将与被删去的点相连的节点加入prufer序列中
重复一,二,操作直到只剩下两个点(具体为什么剩下两个点在后文)
将prufer序列转换为树
因为prufer与一颗无根树一一对应,所以对于一个prufer序列我们还可以把它还原成无根树
具体操作
设prufer序列长度为len
设定一个序列s为$1,2,3,…… len+2$
每次取prufer序列的队头为pfrist
在s中寻找一个满足prufer中不含你所选的数的最小数
将pfrist与你选的数连边,将s中你选的数删去,
每次进行该操作,直到s剩下最后两个数时再将剩下的两个数之间连边
经过这样的操作就得到了一棵树
例如prufer序列为1 2 2,s序列为 1 2 3 4 5
先让1和3连边,
此时prufer序列剩下2 2 ,s剩下 1 2 4 5
再让2和1连边
此时prufer序列剩下2 ,s剩下 2 4 5
然后再让2与4连边
s剩下2 5 2 5之间再连边
因为只用n-2个数就可以确定一棵树,所以如果将一个树转换为prufer序列剩下两个点再加入prufer中是没有意义的
prufer序列性质
一,一棵无根树共有$n^{n-2}$种
因为prufer序列中数唯一对应一棵树
,对于prufer序列共有n-2个数,每个数可以是1-n中任何一个数,所以得到$n^{n-2}$
二,prufer序列中每个点出现次数为该点在无根树中度数-1
观察我们将树转化为prufer序列过程可以得到二
题目
明明的烦恼(待做)
树的统计
题解:https://www.cnblogs.com/znsbc-13/p/11222262.html