【学习笔记】Prufer 序列

Page Views Count

定义与构造#

用于有标号无根树计数。

  • 构造:每次选编号最小的叶子结点,删去这个节点并在序列中记录其父亲。直至剩下 2 个节点,其中一定有一个为 n

  • 还原:每次选编号最小的在序列中未出现的节点,将其与队首连边,同时删去队首元素。最后剩下两个节点,连起来即可。

容易发现构造与还原过程都是在找最小,只不过一个连边一个断边。

可以用 set 维护最小,复杂度 O(nlogn) 大致够用。

性质#

然而 Prufer 序列大多数是用来给树计数的。

  • 有标号无根树计数:序列与树是双射,因此是 nn2。这个东西叫 Cayley 公式。

  • 有标号有根树计数:每个无根树有 n 中赋根可能,因此是 n×nn2=nn1

  • 一个节点的度数是其在序列中出现次数 +1

  • 根据上一性质,给定度数的情况下,有标号无根树个数为:(n2d11,d21,,dn1)=(n2)!i=1n(di1)!

作者:SoyTony

出处:https://www.cnblogs.com/SoyTony/p/Learning_Notes_about_Prufer_Sequence.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   SoyTony  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示