主席樹

sad_lin發表於2024-11-18

2

我們想要先求字首的第 \(k\) 小,我們離散化後一個一個加點,相當於一個平衡樹的構造方法,對這個數離散化後的排行放入,向上傳遞點數,我們查詢時就可以右端點的根的左子樹大小減左端點根左子樹的大小就是區間左邊的數,我們查詢的第 \(k\) 小如果小於左就進入左子樹搜尋,否則我們就去右子樹然後 \(k-l_{siz}\),這其實就是平衡樹搜尋過程,主席樹也就是個字首的概念。

P3567

同樣道理,只不過這次是直接用到了節點數,我們不斷向下找子樹中大於區間一半的點,不斷向下直到找到一個點。

相關文章