prufer序学习笔记

知识总结

一种用于生成树计数的与树一一对应的数列。
一个长度为 n2 的 Prufer 序列,唯一对应一棵n个点固定形态的无根树。

树变序列

  1. 找到编号最小的叶子 x
  2. 设与叶子 x 相连的点是 y ,则删掉 x ,并在 prufer 序列尾部加入一个数 y
  3. 重复 1,2 操作,直到整棵树只剩下两个节点,此时 prufer 序列长度为 n2

不难发现,剩的两个节点里一定会有一个是n,根据这个性质可以考虑以 n 为根节点可以方便的解决问题。

序列变为树

  1. 把 prufer 序列里的数加入队列中,设队首为 u
  2. 维护一个还没有连边的点集 S (初始状况下是 1 n) ,找到点集中编号最小的,并且是没有在队列之中出现的元素 v
  3. u,v 连上一条边,并且 S 中删掉 v, 在队列之中弹出 u
  4. 最后点集只剩 2 个点,互相连边。

prufer 序列转原树的过程就是每次跳出最小的一个叶子节点并且将其对应的度删除的过程,显然一一对应。

序列的一些性质

  1. 每个点出现次数 = 度数减一 (显然)
  2. Cayley定理:n个点的无向完全图的生成树的计数为 nn2n 个点有标号无根数计数
  3. n 个点,每个点度数为 di 的无根树个数为 (n2)!i=1n(di1)!
posted @   Southern_Way  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示