Prufer序列

基本信息

定义:prufer序列是无根树和序列的双向映射,并且描述了节点读书以及父节点的信息。

使用场景:将构造树的问题转化为构造序列,将统计树的问题转化为统计序列,将树的dp转化为序列的dp。

如何得到prufer序列?

  • 统计树上的所有节点的度数 \(d_i\)

  • 找到所有度数为 \(1\) 的节点中编号最小的节点 \(cur\)

  • prufer 序列的第 \(i\)\(p_i=fa[cur]\) ,同时将 \(d_{fa[cur]}\) 减一。

  • 重复 \(2,3\) 直到剩余两个节点。

为了避免根被删除的情况出现,我们认为节点 \(n\) 为树的根。

性质

  • 剩余的两个节点中一定有编号为 \(n\) 的节点。

  • 编号 \(1\) 在prufer中出现的次数为 \(d_i-1\)

posted @ 2024-03-19 19:16  Diavolo-Kuang  阅读(10)  评论(0编辑  收藏  举报