1. 程式人生 > >重量平衡樹之替罪羊樹

重量平衡樹之替罪羊樹

替罪羊樹的思想,就是每次操作都直接做。然後找這條改動路徑上的所有點,找到離root最近,且不平衡的節點,重構這棵子樹。平衡的定義:size(lson) ≤ alpha * size且size(rson) < alpha * size。alpha∈(0.5, 1),一般取0.75。時間複雜度應該是均攤的,O(nlogn)。

重量平衡樹在實際操作時就有很多好處(比如我心愛的treap)。就比如bzoj3065(可插入、修改的區間第k大),這個題用替罪羊樹處理就十分方便(fhq treap也可以)。

但缺點:可持久化困難(反正我不會)、無法提取區間。

我還是站fhq treap!