線段樹合併學習筆記

2021-09-27 06:26:46 字數 445 閱讀 7272

線段樹合併對一整個樹做完時間空間複雜度是n

log⁡

nn\log n

nlog

n的,套點其他什麼東西複雜度就上去了

動態開點的話注意**空間

樹上主席樹啟發式合併的話不**空間是兩個log的,容易被卡,比如這題

我就被卡了(悲)

當然線段樹合併貌似總是可以被spl

ay

splay

spla

y啟發式合併替代,比如

這題在一年前曾經用spl

ay

splay

spla

y啟發式合併寫過,現在用線段樹合併又寫了一遍,沒什麼區別

注意合併的方向要和並查集一致,同時並查集也能很好的維護siz,root之類的資訊。

樹上啟發式合併更多地用於統計子樹資訊之類的,注意insert乙個新點的時候要開一路的資訊。

線段樹合併學習筆記

就是兩顆線段樹合成乙個線段樹 那合成的線段樹是適合所有線段樹嗎 當然不是,是動態開點線段樹 這裡建n個節點的時候,每個節點建一棵樹 而且要按照一定的形態建立一條鏈 就是說如果最終形態是有n個數字的樹,那你初始化的那一條鍊子一定是這顆樹上扣下來的 這樣才方便合併 最重要的操作 流程 如果x和y有一顆樹...

線段樹合併 學習筆記

權值線段樹 動態開點線段樹 有時候我們需要對權值線段樹進行合併操作。然後就用到了線段樹合併。一般是有很多棵線段樹,然後需要將其中的兩棵合併起來。其實方法很簡單呢。就是分三種情況討論一下。假設現在要將線段樹a和線段樹b合併。並且a成為合併之後的線段樹。如果a有當前子樹,而b沒有,那麼返回a的當前子樹 ...

學習筆記 線段樹合併

分析 線段樹合併人生第一題。網上的題解我都沒看懂 我自己講一下好了 線段樹合併就是把兩棵權值線段樹合併到一棵 那怎麼合併呢?假設有這麼兩棵樹 乙個結點代表一段值域區間有幾個數,那麼可以看出合併後應該是這樣的 然後具體步驟就是找到乙個結點,如果乙個結點一棵樹上有一棵樹上沒有,那麼直 接返回那個結點的編...