重量平衡树之替罪羊树

替罪羊树的思想,就是每次操作都直接做。然后找这条改动路径上的所有点,找到离root最近,且不平衡的节点,重构这棵子树。平衡的定义:size(lson) ≤ alpha * size且size(rson) < alpha * size。alpha∈(0.5, 1),一般取0.75。时间复杂度应该是均摊的,O(nlogn)。

重量平衡树在实际操作时就有很多好处(比如我心爱的treap)。就比如bzoj3065(可插入、修改的区间第k大),这个题用替罪羊树处理就十分方便(fhq treap也可以)。

但缺点:可持久化困难(反正我不会)、无法提取区间。

我还是站fhq treap!

猜你喜欢

转载自blog.csdn.net/richard_for_oi/article/details/80259970