1. 程式人生 > 其它 >2021-8 清北學堂 省選 資料結構 內容回顧

2021-8 清北學堂 省選 資料結構 內容回顧

主講人:李欣隆

D1:

Treap(tree+heap)性質:每個點隨機分配一個權值,使treap同時滿足堆性質和二叉搜尋樹性質,複雜度 \(O(n\log n)\)

旋轉(rotate)有單旋和雙旋, treap只需要單旋,這一點比較簡單。

旋轉時最好先記錄每個點的編號,再斷連,再重構,最後按照點的編號呼叫函式 update(x)

Splay:每次對一個節點進行操作的時候通過―種方法把這個點旋轉至根,稱為Splay(伸展)操作。

注意:Splay要雙旋

用單旋(單旋到根稱為move to root)會被卡是常識了……對於單調資料,樹會退化成一條鏈,然後每次move最深的點就被卡掉啦~

Splay:

situation 1:

先 fa 後 cur

situation 2:

兩次 cur

Split:

Merge:

Fhq_treap:

先鴿著。

例題:

P4198 樓房重建

斜率預處理+線段樹 \(O(m\log^2n)\) 維護。

D2:

D3:

D4:

D5:

本文作者為小蒟蒻:zhangshaojia

轉載請註明原文連結。

碼字不易,求關照,謝謝!