数据结构复习
數據結構
two permutation
平衡樹維護哈希值
合并
啟發式合并
適合只有合并沒有拆分的問題
樹鏈剖分
左偏樹
fhq_treap合并
滿足一顆子樹內的所有節點都小于另一顆子樹
排布石頭
平衡樹啟發式合并
樹上啟發式合并
樹上的子樹問題,比如樹上眾數問題
全局維護數據結構,可以不好合并,但是只需要單點插入單點刪除即可。
CCPC Final 2019 K
對樹上每個點維護子樹內所有點編號構成的連續段個數
笛卡爾樹
滿足堆性質的二叉樹,中序遍歷為原序列,每個點為其子樹的最值,常用來處理區間最值相關問題。反映了大小關系的層次結構。
O(n)建樹
維護單調棧維護右鏈,相當于對原序列維護一個單調棧中的所有元素
Special Segments Of Permutation
查詢有多少區間,滿足端點處的數之和等于區間最大值
區間最大值等于區間端點的lca
可以轉化為樹上問題,利用樹上啟發式合并解決,然后因為一共只有兩個兒子,然后需要處理出一個兒子的桶,然后dfs另一個兒子,所以我們每次啟發式合并,每次繼承重兒子的桶,然后暴力搜索輕兒子。
線段樹合并
雨天的尾巴
有一顆樹,第i次操作將樹上路徑的每一個點放一個i,最終對每個點求其中出現次數最多的數。顯然需要數據結構維護,然后是一個離線問題,并且是一個樹上問題,所以我們就可以使用線段樹合并解決這個問題了。
線段樹優化建圖
利用線段樹可以把一個區間拆分為log個節點的性質。
可持久化
可以處理線性的問題或者樹形的問題
回家
n個點m條邊的有向圖,每條邊的權值是2^li,求s到t的最短路輸出答案對998244353取模的結果。
只需要用可持久化線段樹維護二進制,然后加數可以快速維護,只需要修改log個線段樹節點,然后還需要維護一下哈希值,就可以快速查詢lcp就可以O(logn)比較兩個數的大小。
可持久化并查集
???
離線加強版
假的可持久化,版本之間構成了一個版本樹,每個版本由自上而下的操作構成,如果在全局維護可支持棧序撤銷的數據結構那么對版本樹離線dfs即可。
序列分塊
二維數點
強制在線,求一個矩形內的點的權值和,帶修改
分塊
外側對x進行排序,然后在塊內部對y進行排序。然后查詢的時候整塊可以進行二分,零散點暴力。然后修改就可以進行
2020CCPC黑龍江省賽 I.Inkball FX
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: P6329 【模板】点分树 | 震波
- 下一篇: P3714 [BJOI2017]树的难题