prufer序列

生成函数,甚至于普式的标号树相关计数问题都需要这个知识

概述

Prufer编号是一种编号方式可以建立一些序列和无根树的一一对应关系

求法

  • 对当前树删除叶子结点中最小的点,加入临接点(显然\(\le1\)个),加入序列
  • 若本次没有加入的点,结束,否则回退

\(e.g.\)

prufer序列_第1张图片\(\Rightarrow~554446\)

还原

设prufer序列为\(\{a_i\}(i\in[1,n-2])\),可以还原\(n\)个点的无根树

假设现在考虑到\(a_i\),取不在\(a\)数组中且不为\(b_j(j\in[1,i))\)的编号最小值\(b_i\),在\(a\)数组中删去\(a_i\)(不去重集合)

性质

1.任意\(n\)点有标号无根树可以唯一用\(n-2\)长度的prufer序列表示

2.度数为\(m\)的点在序列中出现\(m-1\)

例题

你可能感兴趣的:(prufer序列)