彙總犯過的一大堆神奇錯誤。
例:
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維護 一棵...