f292. 11987 - Almost Union-Find
標籤 : DSU
通過比率 : 104人/154人 ( 68% ) [非即時]
評分方式:
Tolerant

最近更新 : 2020-10-19 23:04

內容

大家應該都聽過查並集這個資料節構吧?需要提供兩個功能 Find() 和 Union(),

現在我們需要再額外増加一個新功能:把某個數字從他現在的群體中移除並加入指定的群體當中。

當然一開始時每個數字都是屬於自己的群體 {1}, {2}, {3}, ..., {n}。

操作的定義:

1  P  Q:將 P Q 所在的兩個群體合併為同一個

2  P  Q:將 P 從他所在的群體當中移除並且加入 Q 所在的群體

3 P      :印出 P 所在的群體包含的成員個數和成員編號總合

 

 
輸入說明

多筆測資輸入,最後以 EOF 結尾。

每筆測資的第一行輸入 2 個整數 N 和 M ,N 代表數字的編號從 1 到 N , M 代表 操作的次數。

接著每一行都是屬於題目定義的操作方式三種其中一種。

測資範圍保證 1 ≦ N, M ≦ 100,000 且 1 ≦ P, Q ≦ N。

輸出說明

每一行輸出 2 個數字代表對應的第 3 種操作執行結果。

範例輸入 #1
5 7
1 1 2
2 3 4
1 3 5
3 4
2 4 1
3 4
3 3
範例輸出 #1
3 12
3 7
2 8
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (50%): 1.0s , <10M
公開 測資點#1 (50%): 1.0s , <1M
提示 :

Disjoint Set Union

標籤:
DSU
出處:
UVA 11987 [管理者: rollfc (胖胖貓) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
28601 SUNGOD (黑龍炎使.煞氣ㄟSUNGOD) f292
可加強測資
673 2021-12-21 02:24