[Note]prufer
[Note]Prufer编码
实现
不断删除度数为\(1\)的最小序号的点,并输出与其相连的节点的序号,直至树中只有两个节点。
性质
任何一棵\(n\)节点的树都可以唯一的用长度为\(n-2\)的prufer编码表示
度数为\(m\)的节点的序号在prufer编码中出现次数为\(m-1\)。
还原
怎样将prufer编码还原为一棵树?
从prufer编码的前端开始扫描,寻找最小的且不在prufer编码中且未被标记的节点v,连接u,v并标记v,将u从prufer编码中删除。扫描下一节点。
应用
[HNOI2008]明明的烦恼
直接写出树的prufer序列。为了避免高精度除法,我们可以在质因数的指数上加加减减,最后再高精度乘法。