所有問題只有加邊,沒有刪邊。
並查集就可以了。
考慮連邊時維護割邊。
如果把割邊的值設為 \(1\) ,非割邊的值設為 \(0\) ,那麼只需要修改和維護鏈的和即可。
因為根會變,所以邊的資訊需要新建點來儲存。
例題:p2542 [ahoi2005] 航線規劃
圓方樹有乙個很好的性質:兩點之間的割點為圓方樹上兩點路徑的圓點(含端點)。
那麼用考慮用動態樹來動態維護圓方樹。
例題:p5622 [dboi2019]巫女的職責
把上面兩道題粘在一起就是 p5489 entropyincreaser 與 動態圖。
連通問題演算法
書籍 演算法 c語言實現 快速查詢演算法 void connect int p,q while cin p q 我們把合併操作完成到最後,也就是這是乙個只有兩層的樹。或者我們把合併操作簡化,讓查詢變得麻煩一點 void connect1 int q,p int i,j while cin p q a...
洛谷 P2147 LCT維護連通性 水題
傳送門 題意 就是不斷的加邊和刪邊,然後會詢問兩點是否聯通 思路 這就是模板題啊,注意的點是判斷聯通性時要通過找兩個點的root是否相等,我之前寫的找乙個點的root是否等於另乙個點,可是另乙個點不一定時根呀 所以是錯的 ac code const int maxn 1e4 5 int a maxn...
關於樹論 動態樹問題(LCT)
搬運 看一道caioj1439 題目描述 一開始給你一棵n個點n 1條邊的樹,每個點有乙個權值wi。三種操作 op 1 u v 在點u和點v之間建一條邊。op 2 u v 摧毀點u到點v之間的邊。op 3 w u v 將點u和點v之間路徑上的點 包括u,v 權值增加w。op 4 u v 詢問點u到點...