動態樹 LCT 錯誤總結

2021-08-17 13:50:23 字數 667 閱讀 3154

彙總犯過的一大堆神奇錯誤。

例:

node *

findroot

(node *u)

return u;

}

解決方法:

寫完後搜尋所有->ch,檢查是否之前已pushdown()

解決方法:

使u

uu結點懶標記意義表示u

uu的兒子結點需更新,而不是u

uu需要更新。

###懶標記下傳後未清空

例:

void

pushdown()

例:

null->fa=null->ch[0]=null->ch[1]=null;

null->siz=1;//這裡應=0

例:

void

cut(node *u,node *v)

void

update

(bool re)

}

node *

root

(node *u)

動態樹LCT 模板

題目描述 輸入 第一行兩個整數n和m 接下來一行中n個整數表示初始點權 接下來m行每行乙個操作如上表所示。輸出 對於每乙個連線操作,若p和q不連通,輸出yes,並新增這條邊 否則輸出no 對於每乙個刪除操作,若p和q間有邊,輸出yes,並刪除這條邊,否則輸出no 對於每乙個查詢最大及查詢和,若p和q...

詳解動態樹 LCT)

lct的功能 題意 乙個圖,有n個點,一開始圖中沒有邊。三種操作 connect u v 在點u和點v之間建一條邊。保證所有connect操作不會重複建邊。destroy u v 摧毀點u到點v之間的邊。保證所有destroy操作將摧毀的是一條存在的邊。query u v 詢問點u和點v是否聯通,是...

動態樹(LCT)學習筆記

candy flashhu xzyxzy 想要學lct的還是看這幾篇比較好。我這篇只是總結一些容易理解錯的或者一不小心打錯的地方。lct link cut tree 就是又可以link 動態加邊 又可以cut 動態刪邊 的維護一片森林的資料結構。lct使用實鏈剖分,對每一條實鏈用splay維護 一棵...