解题报告(八) prufer 序列与 Cayley 公式(ACM / OI)超高质量题解

这篇博客是关于Prufer序列和Cayley公式的解题报告,详细介绍了这两个概念及其性质,包括无根树与Prufer序列的相互转化和Cayley公式的推论。博客提供了多道相关算法题目的解题思路和代码实现,涉及洛谷、UVA、BZOJ等平台的题目。
摘要由CSDN通过智能技术生成

繁凡出品的全新系列:解题报告系列 —— 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数( 1 ∼ 5 1 \sim 5 15),以模板题难度 1 1 1 为基准。


这样大家在学习算法的时候就可以执行这样的流程:

%
阅读我的【学习笔记】 / 【算法全家桶】学习算法 ⇒ \Rightarrow 阅读我的相应算法的【解题报告】获得高质量题单 ⇒ \Rightarrow 根据我的一句话题解的提示尝试自己解决问题 ⇒ \Rightarrow 点开我的详细题解链接学习巩固(好耶)

%
解题报告系列合集:【解题报告系列】超高质量题单 + 题解(ICPC / CCPC / NOIP / NOI / CF / AT / NC / P / BZOJ)

本题单前置知识:【学习笔记】树的计数,prufer(Prüfer)编码,Cayley公式及相应例题

1. prufer \text{prufer} prufer 序列

Prufer数列是无根树的一种数列。在组合数学中,Prufer数列由有一个对于顶点标过号的树转化来的数列,点数为n的树转化来的Prufer数列长度为n-2。

2. prufer \text{prufer} prufer 序列的性质

性质1: prufer \text{prufer} prufer 序列与无根树一一对应。

显然

性质2: 度数为 d i d_i di 的节点会在 prufer \text{prufer} prufer 序列中出现 d i − 1 d_i-1 di1 次。

当某个节点度数为 1 1 1 时,会直接被删掉,否则每少掉一个相邻的节点,它就会在序列中出现 1 1 1 次。

因此共出现 d i − 1 d_i-1 di1 次。

性质3: 一个 n 个节点的完全图的生成树个数为 n n − 2 n^{n-2} nn2 (Cayley 公式)

对于一个 n n n 个点的无根树,它的 prufer \text{prufer} prufer 序列长为 n − 2 n-2 n2 ,而每个位置有 n n n 种可能性,因此可能的 prufer \text{prufer} prufer 序列有 n n − 2 n^{n-2} nn2 种。

又由于 prufer \text{prufer} prufer 序列与无根树一一对应,因此生成树个数应与 prufer \text{prufer} prufer 序列种树相同,即 n n − 2 n^{n-2} nn2

性质4: 对于给定度数为 d 1 ∼ n d_{1\sim n} d1n 的一棵无根树共有 ( n − 2 ) ! ∏ i = 1 n ( d i − 1 ) ! \cfrac{(n-2)!}{\prod_{i=1}^n(d_i-1)!} i=1n(di1)!(n2)! 种情况。

由上面的性质可以知道,度数为 d i d_i di 的节点会在 prufer \text{prufer} prufer 序列中出现 d i − 1 d_i-1 di1 次。

则就是要求出 d i − 1 d_i-1 di1 i ( 1 ≤ i ≤ n ) i(1\le i\le n) i(1in)的全排列个数。

而上面那个式子就是可重全排列公式。(即全排列个数除以重复元素内部的全排列个数)

3.

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

繁凡さん

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值