1. 程式人生 > >[Wc]Dface雙面棋盤()

[Wc]Dface雙面棋盤()

問題 啟發式 ognl 啟發式合並 一個 color 沒有 但是 n)

題解:

一道維護奇怪信息的線段樹。。。

我剛開始看了標簽想的是刪去圖上一個點後求連通性

發現不會

於是退化成一般圖支持刪除 插入 維護連通性

發現有2兩種做法

1.lct維護

按照結束順序先後排序,給每條邊一個權值

然後我們只要維護最大生成樹就好了,因為這樣可以保證刪除當前樹上的邊是不會被權值更小的邊替換的

而由於最大生成樹的性質,是不可能能替換成更大的邊的

so這說明刪除它之後就不需要連邊了

nlogn但是常數大吧

2.線段樹分治

這個應該很明顯吧,變成只有插入的並查集問題

nlognlogn 常數小

然後由於這個牽扯出loj122這題 維護動態圖連通性

並沒有看懂網上的唯一一篇題解於是棄療

正解:

線段樹上的每個葉子節點表示一行

每個節點維護當前範圍內的黑白區間個數

合並的時候就用並查集啟發式合並就可以

每次合並是o(n)的

每次修改進行log次

所以復雜度應該是O(nmlogn)

相比上面兩種都不優吧 但是常數小了至少8倍 因為這個是單點修改上面的要修改8條邊

明天補吧

[Wc]Dface雙面棋盤()