平衡树从入门到黑题

花了三周上午时间来啃平衡树。
从板子都不会写 到 独立完成黑题。
记录一下历程。


基础知识

P3369 【模板】普通平衡树

二叉搜索树

可以将其理解为二叉搜索树的高性能实现方式。
平衡树即为结构平衡的二叉搜索树。

Splay

通过不断将某节点旋转到根节点,使得整棵树仍满足二叉搜索树的性质。
且保持平衡不至于退化为链,以保证复杂度。

Treap

treap = tree + heap,是一种树和堆组合形成的数据结构。

treap 的每个节点上额外储存一个 关键值。
根据关键值调整 treap 结构,使其除满足二叉搜索树性质外,还满足父节点的关键值 \(\ge\) 儿子的关键值。
若关键值随机生成,则 treap 树高期望为 \(O(\log n)\)

FHQ-Treap

又称无旋 treap, 是一种特殊的 treap。
以分裂和合并为核心。
其操作方式使它天生支持维护序列、可持久化等特性。


注意

一棵平衡树最重要的是它的结构。
只有结构才能反映 其维护的信息。
节点中携带的信息不一定都与其结构有关。

在实际应用时 一定要明确结构维护的信息。


题目练习

模板水题

用于练习板子和刷AC数。

P1801 黑匣子 查询最值
P2073 送花 查询最值
P2234 [HNOI2002]营业额统计 查询前驱后继
P2286 [HNOI2004]宠物收养场 查询前驱后继
P2343 宝石管理系统 查询最值
P3871 [TJOI2010]中位数 维护中位数 (查询指定排名)
P3850 [TJOI2007]书架 查询第k大
P1486 [NOI2004]郁闷的出纳员 查询第k大

猜你喜欢

转载自www.cnblogs.com/luckyblock/p/12907427.html