Prufer 序列
Prufer 序列
基本介绍
Prufer 序列是一个大小为 ,值域在 的序列。完全图生成树和 Prufer 序列形成双射。
对树建立 Prufer 序列:每次选择编号最小的叶节点删去,在序列中记录叶节点的父亲,重复 次结束。
用 Prufer 序列建立树:计算出每个节点的度数,每次选择一个度数为 1 的编号最小的节点与当前 Prufer 序列中的开头节点连接,两个点度数同时减 1,删去 Prufer 序列的开头,重复 次,剩下两个度数为 1 的点连起来。
两种操作均可以线性实现。
生成函数形式
,
其中 是枚举一棵 的生成树, 是生成树中点 的度数。
我们有了这个形式可以很轻松的计算这样一个问题:
对于 个点的有标号图有 个连通块,连通块点数为 ,我们希望添加 条边使得整个图连通,求方案数。
考虑答案即为 ,这和上述生成函数形式很接近,我们稍加变换可以得到:
。
Cayley 公式与扩展 Cayley 公式
Cayley 公式:完全图 有 棵生成树。
扩展 Cayley 公式:对于钦定的 个点,完全图 有 个生成森林满足 个点在不同的树中。
证明可以生成函数+拉反。
完全 k 分图的生成树个数
完全 2 分图 的生成树个数是一个经典问题,答案为 。证明可以考虑 Matrix-Tree 或者定义一个魔改的 Prufer 序列。
完全 k 分图的生成树个数的答案是:。证明可以考虑容斥(完全图挖掉 k 个团,大力容斥每个团选的边)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
2022-07-07 一个平衡问题的高效解法