[Note]prufer

[Note]Prufer编码

实现

不断删除度数为\(1\)最小序号的点,并输出与其相连的节点的序号,直至树中只有两个节点。

性质

任何一棵\(n\)节点的树都可以唯一的用长度为\(n-2\)的prufer编码表示

度数为\(m\)的节点的序号在prufer编码中出现次数为\(m-1\)

还原

怎样将prufer编码还原为一棵树?

从prufer编码的前端开始扫描,寻找最小的且不在prufer编码中且未被标记的节点v,连接u,v并标记v,将u从prufer编码中删除。扫描下一节点。

应用

[HNOI2008]明明的烦恼

直接写出树的prufer序列。为了避免高精度除法,我们可以在质因数的指数上加加减减,最后再高精度乘法。

posted @ 2018-10-25 15:41  wyxwyx  阅读(135)  评论(0编辑  收藏  举报