新高一暑假第一期集訓恢復性訓練【資料結構-雜題小練】(並查集)(補)
A. [JOISC2014 Day2] 交朋友
首先,我們把從 \(x\) 連出去兩條邊的都合併,然後再去合併從 \(x\) 連出去一條原有邊與一條新邊的情況。
第一種情況直接列舉就行,第二種情況來一個多源 bfs 即可。
B. [HDU1272] 小希的迷宮
只需判斷是否存在多個樹和是否存在環。
C. [ABC131F] Must Be Rectangular!
簡單手玩樣例畫圖分析可以發現,題目是想讓我們用並查集合並橫座標或者縱座標相同的點,同時維護矩形框的長度和寬度,還有集合內點的個數。
用整個矩形的點數減掉已有的點數就是答案。
然而實際寫的過程中發現長度和寬度並不是很好直接維護,長度實際上是集合內不同x的數量,寬度實際上是集合內不同y的數量,沒想到什麼很無腦的合併方法。
最後對每個並查集開了 \(x\) 和 \(y\) 兩個 set,按照 set 的大小進行啟發式合併。