前置知識:基於值域的整體第k大(權值線段樹)
寫主席樹必定需要注意空間的開銷,一定要開夠
若長度為n,修改為m次,則空間複雜度為n+m*logn。
可以在我的部落格裡翻一翻2333。
基礎問題,求解區間第k大,或者區間小於等於k的個數:
poj-2104
hdu-4417
下面兩個前置知識lca
p2633 count on a tree
distance on the tree (2019南昌網路賽)
高階:求解區間內不同數的個數或者不同數的和
若可以離線做的話,推薦使用樹狀陣列
可離線的題:hdu-3333
求區間中不同數的個數,在此基礎上求區間第k大的下標是誰(下標定義為區間中第一次出現該數字的位置)。
樹套樹單點修改,區間查詢第k大
zoj 2112
p2617 dynamic rankings
學習總結 主席樹
突然想起主席樹。依稀只記得演算法的大概了,所以今天又拿出來溫習了一下,畢竟學習演算法是很快的,忘掉也是很快的,而演算法一定是要運用的,否則也就沒有存在的意義了。首先主席樹是一棵線段樹,而且是乙個字首權值線段樹,支援靜態的查詢。這個演算法最大的亮點就是在原有的一棵樹的基礎上,如果想將乙個元素插入,就根...
靜態主席樹學習總結(詳細)
菜雞這兩天學了靜態主席樹,看了好多大佬的 和解釋 終於看懂了!在此寫乙個菜雞詳細版的靜態主席樹總結o o 主席樹也稱函式式線段樹也稱可持久化線段樹。求任意區間 l,r 的第k大數。假設這個區間是 1,r 1 我們若每次求區間 1,r 的第k大數,則用權值線段樹可求解,即從根節點開始向下遞迴,若左子節...
主席樹 初學
現在才開始學主席樹 弱 不過不帶修改的話 還是很簡單的嘛。或者說應該叫可持久化線段樹?首先對數的區間進行離散化,這樣下面的a i 都預設為離散化以後的結果了。對於每個1.i開乙個線段樹,對於這個線段樹中的每乙個節點 l,r 表示1.i中在 l,r 中的數的個數。顯然這n個線段樹的形態大小是完全一樣的...