「学习笔记」Prufer 序列

注:此博客写于 2017.9

参考资料

prufer序是无根树的编码表示,对于一棵\(n\)个节点带编号的无根树,对应唯一一串长度为\(n-2\)的prufer编码。

无根树转化为prufer序列

找到编号最小的叶子并删除,序列中添加与之相连的节点编号,重复执行直到只剩下\(2\)个节点。

根据以上过程,显然有推论 一个节点的度数=其在prefer序列出现的次数+1。

prufer序列转化为无根树

首先prufer序列中的出现次数+1可以得到每个节点的度。

先执行\(n-2​\)步,选取最小标号度为1的点\(u​\)与Purfer序列的第\(i​\)个数\(v​\)表示的顶点相连,并将\(u​\)\(v​\)的度减\(1​\)。最后再把剩下的两个度为\(1​\)的点连边。

由此发现,一棵无根树和与一个prufer序列一一对应。

一些推论
  • 一个无向完全图的生成树个数为\(n^{n-2}\)
  • 设节点\(i\)的度数限制为\(di\),求满足条件树的个数。对应到prufer序列,相当于\(i\)在序列中出现了\(di-1\)次,不同的排列数。即为\(n!\)除以每个\((di-1)!\)
  • 对于一些没有限制度数,稍微修改一下即可。

猜你喜欢

转载自www.cnblogs.com/cyanic/p/9159458.html