noi2005 維護序列。 splay

2021-09-30 04:46:38 字數 443 閱讀 2739

挑戰自己寫了一下這道noi歷史上最**的資料結構,

noi2005的維護序列,非常**非常**,在經過4小時的debug後一次ac了= =

如果再賽場上以我現在水平一定搞不出來。。。

吃一塹長一智,這題對平衡樹的操作更加深入、

由於oj上的記憶體限制只有64mb。。。所以為了記憶體,加了個**棧。

後來又加了個**棧,

**棧指的是被刪除的節點進入棧中,需要從棧中拿出,棧為空那個則再新增節點。。

從**棧取出節點的時候要清除節點的標記。。

節約很大的空間(儘管noi時期不用管它)

這題改天要重新寫寫。。

之前一直不敢寫是因為有翻轉操作不敢寫,翻轉則是給根結點乙個標記,左右兒子交換,值傳遞,

其餘的與普通的splay值傳遞是一樣的。。

注意給給前後各加乙個點,max=-inf。這樣進行初始化。。。

noi2005維護數列

請寫乙個程式,要求維護乙個數列,支援以下 6 種操作 請注意,格式欄 中的下劃線 表示實際輸入檔案中的空格 操作編號 輸入檔案中的格式 說明1.插入 insert posi tot c1 c2 c tot 在當前數列的第 posi 個數字後插入 tot 個數字 c1,c2,c tot 若在數列首插 ...

NOI2005 維護數列

陳年老題。我就 碼了4k多。主要就是用splay,然後處理區間上的東西 區間反轉就和模板一樣,但是要記得反轉leftmax和rightmax 區間賦值就把那個區間提取出來,然後給子樹根打個same標記,表示下面的全一樣。區間求最大子段和就和線段樹的套路一樣。區間插入就先弄好一顆平衡樹,然後把原平衡樹...

NOI2005 維護數列

傳送門 我還是沒有逃過在這道題上debug好久的命運 我是使用 fhq treap 來做的這道題。寫的時候寫的挺爽的 調的時候真難受。首先我們先來說說咋做吧。前5個操作對於 fhq treap 來說不在話下,只要多打兩個標記就可以了。但是如何求最大子段和?於是乎我們再打三個標記來維護它 霧 然後我們...