【学习笔记】树的计数,prufer(Prüfer)编码,Cayley公式及相应例题

本文介绍了Prufer编码如何将无根树转化为序列,以及如何从序列还原无根树。Prufer编码提供了一种计算无根树数量的方法,即对于n个节点的无根树有n(n-2)种。此外,文章解释了Cayley公式,指出无向完全图的生成树计数为n(n-2)。还探讨了Cayley公式的一些推论,包括不同度数节点的无根树计数,并给出了相关例题。
摘要由CSDN通过智能技术生成

具体的内容见:https://www.luogu.com.cn/blog/TheLostWeak/solution-p2290

我花了半个小时写完了以后后忘记保存直接关掉了,然后就没有然后了…已经不想更新了…

1、 p r u f e r prufer prufer编码

首先引入 p r u f e r prufer prufer编码(其实是 P r u ¨ f e r Prüfer Pru¨fer

p r u f e r prufer prufer数列,可以用来解一些关于无根树计数的问题。

p r u f e r prufer prufer数列是一种无根树的编码表示,对于一 棵 n n n 个节点带编号的无根树,对应唯一一串长度为n-1的 p r u f e r prufer prufer编码。

1)无根树转化为prufer序列

一棵无根树的 p r u f e r prufer prufer编码的值运算如下:

首先定义无根树中度数为1的节点是叶子节点。 找到编号最小的叶子并删除,序列中添加与之相连的节点编号,重复执行直到只剩下2个节点。

如图:

在这里插入图片描述
它的 p r u f e r prufer prufer编码就是4, 3, 3
先丢1,4加入序列,再丢2,3加入序列,再丢5,3加入序列,剩余两个,停止丢人,序列为4,3,3

显然,一棵有n个结点的无根树,它的 p r u f e r prufer prufer 编码是唯一的,且有 n − 2 n-2 n2 个可能相同的元素。

具体实现可以用一个 s e t set set搞定,维护度数为 1 1 1 的节点。复杂度 O ( n l o g n ) O(nlogn) O(nlogn)

2)prufer序列转化为无根树。

设点集 V = ( 1 , 2 , 3 , . . . , n ) V=(1,2,3,...,n) V=(1,2,3,...,n),每次取出prufer序列中最前面的元素u,在V中找到编号最小的没有在 p r u f e r prufer pruf

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

繁凡さん

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

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

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

打赏作者

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

抵扣说明:

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

余额充值