模板

Template. LCA Doubling Search

使用倍增法的做法來計算LCA。 先製作dp表,$dp[i][j]$代表$i$的第$2^j$祖先是誰,若不存在則為-1。 在查詢時,先將點$a$和$b$調整到相同高度,再一起慢慢往上移動尋找LCA。 時間複雜度:$O(N log N)$
2018-08-15

Template. Strongly Connect Component

使用point來記錄點的路徑,結果存在result。
2018-08-15

Template. Treap

Treap = Heap + Tree。 Usage 宣告: treap<型別> a, b; 插入: a.insert(100); 刪除: a.erase(100); 查詢第k大(回傳node指標,取->key即可得到該數字): a.kth(1); 查詢某數為第幾大(0為第一個): a.rank(100);
2018-08-14