12 2 LCT 可持久化資料結構

2021-08-11 18:22:15 字數 858 閱讀 6727

12.2·lct·可持久化資料結構

例題:

彈飛綿羊 bzoj2002

修改時一次cut,一次link,而詢問x時只需access(x),splay(x),然後輸出左子樹大小+1即可

洞穴勘測 bzoj2049

只需要換根之後在link就行了。

樹的統計 bzoj1036

修改x的值只需將x旋轉到其所在輔助樹的根,修改val[x],然後maintain(x)。鏈詢問和鏈修改用changeroot(u);access(v);splay(v);(打標記)。

housewife wind poj2763

把邊權轉成乙個帶權點就行(想出正解,並不會寫)

魔法森林 bzoj3669

把邊按a值排序後依次加邊,用lct動態維護當前圖以b為權值的最小生成樹,記錄乙個答案為a與樹上s到t路徑上b的最大值之和。取所有答案中最小的即可。

------------------lct·完------------------

可持久化資料結構···沒考

ppt,下週補全。

------------------

可持久化資料結構·完

-----------------

可持久化資料結構

1.可持久化線段樹 可持久化陣列 最基礎的可持久化資料結構,每次修改開新的log個點即可。includeusing namespace std const int n 1e6 100 templatevoid rd t x templatevoid print t x struct segseg n...

可持久化資料結構

用vector實現可持久化 這題要求的是乙個支援區間查詢的可持久化資料結構。這裡使用vector巧妙地實現 pair用pair儲存時間戳以及當前時間的值,query的時候使用二分查詢即可。如下 1 include2 include3 include4 include5 define x first ...

可持久化資料結構維護可持久化陣列

首先我們要知道,undo 操作,也就是直接跳回前面的操作 歷史操作 然後跳回的地方到現在的地方這乙個區間的操作都不用管。這就是高階挑戰的思路 可持久化是指一種可以訪問歷史版本的資料結構 然後我們就可以知道,詢問歷史,又是陣列,也就是可持久化陣列。可持久化陣列的維護很簡單,我們可以開乙個 o n 2 ...