可持久化線段樹為什麼被叫做主席樹 附主席樹講解

2021-10-10 13:55:26 字數 698 閱讀 2617

它可以記錄線段樹歷史狀態,對歷史狀態進行查詢。

又名主席樹。

因為線段樹是從葉節點往上修改,而這個過程中只有修改一些節點,所以,別的節點可以不動。

可持久化線段樹就是只對修改過的節點進行複製。別的節點保留不動。這樣空間就不會炸。

如果複製一整棵樹的話,空間複雜度是 o(n

∗m)o(n*m)

o(n∗m)

。**:

圖是我自己畫的,可能醜了點。

紅色表示原來的樹的部分,黃色是第一次修改,藍色是第二次修改。可以發現,藍色是在黃色的基礎上進行修改的。

這樣子的好處就是空間的優化。

其餘操作與線段樹一樣。

---------------------------以上內容摘自本人的csdn部落格

例題**: 結合圖就非常容易理解了,對吧。

鄙人的部落格

有乙個人,他叫做黃嘉泰,他發明了可持久化線段樹。

他的姓名拼音:hjt

而某位偉大的提倡科學強國的主席先生的姓名拼音:hjt

所以,主席樹來了。

總有些人說是因為持久才叫做主席樹…

謝謝閱讀。

主席樹(可持久化線段樹)

我真弱。連主席樹都不會。主席樹相當於多個線段樹,由於相鄰兩棵線段樹的節點的值只有少許不同,因此可以對於和前一棵樹一樣的子樹乙個指標指過去,無需操作,這樣每棵樹o logn 總複雜度o nlogn 以下是區間k大 include include include define n 100005 defi...

主席樹 可持久化線段樹

首先要學會普通的線段樹,然後理解權值線段樹,而主席樹就是多個權值線段樹 我自己的理解 但是這多個權值線段樹之間有公共部分,節約了空間。它一開始是乙個空樹,後來逐個添數,記錄新增的這個數在那個範圍內,並 1,顯然它每次只更新了一條鏈,其他不需要變,這樣就有了多個版本的線段樹。如果求 l,r 範圍內第k...

可持久化線段樹(主席樹)

qwq我大概又是機房最後乙個學主席樹的了吧 其實之前一直都在講 只是沒做題 做了幾道以後發現都是乙個套路qwq關鍵就是能不能看出來要用主席樹 主要可以解決 靜態 動態區間第k大 樹上也可以 一些有關區間的帶某些限制的詢問 如出現次數等 先把模板粘上來 include include include ...