灵魂滚烫, 命运冰凉|

fhq_treap

园龄:5年7个月粉丝:67关注:21

[学习笔记]Prufer序列

定义

Prufer序列用以解决一类树计数问题。
image
其的生成方式为:每次在所有叶子中选取编号最小的,将其的父亲编号推入序列,并删除这个叶节点,只到只剩两个
如上图这颗树的Prufer序列为[2,2,6,5]

考虑如何从Prufer序列反向生成树。

依次确定父亲。

首先选择未出现在序列中的编号最小未使用的节点,其父亲就是队首元素,将其退队。

若队首元素是最后一次出现,把其也加入未出现在序列的集合里。

有标号无根树的计数

考虑Prufer序列和原树一一对应,所以我们直接计序列计数即可,发现其为nn2

有标号有根树的计数

考虑对无根树确定根,其为nn2n=nn1

若干强制条件如di=x的树计数

考虑对每个条件先确定其位置,再确定其他位置。

i=1(nj=1i1dj1di1)×(nj=1dj1)n2j=1dj

本文作者:fhq_treap

本文链接:https://www.cnblogs.com/dixiao/p/15867922.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   fhq_treap  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起