b242: 瑞克和莫蒂蓋房子
標籤 : DSU 並查集 啟發式合併 路徑壓縮
通過比率 : 1人/1人 ( 100% ) [非即時]
評分方式:
Tolerant

最近更新 : 2025-06-05 16:34

內容

《瑞克和莫蒂》 (Rick and Morty) 是一齣知名成人美式動畫,好孩子別去看

瑞克很喜歡讓莫蒂幫忙打下手,

時不時會一起組隊去其他平行宇宙冒險,

不過這次瑞克迷上了蓋房子!

瑞克的野心非常大,

一次要蓋非常多棟房子。

莫蒂雖為瑞克的小幫手但十分睿智,

瑞克只能讓他一個口令一個動作,

將已經整理好的兩堆材料整理成新的一堆

有時瑞克會忘記哪種材料放在哪一堆和每堆材料的資訊,

就會詢問莫蒂材料在哪一堆那堆材料的重量,和總共有多少堆材料

為了方便,

瑞克會要求莫蒂告訴他每堆材料中最小的編號當作那堆材料的編號

當然如果瑞克在提問前就發出指示,

有可能命令莫蒂將兩個在同一堆的材料疊起來,

此時莫蒂會十分有靈性的忽略瑞克的指示

睿智的莫蒂十分睿智,

雖然他會很會疊材料,

但無法回答瑞克艱難的問題,

請你幫幫他!

 

*每堆材料的初始重量皆為 $1$

輸入說明

輸入變數說明

$N$ 代表總共訂多少材料,每種材料的編號分別為$1-N$

$Q$ 代表瑞克總共下達 $Q$ 筆指示或提問

$p_i$ 代表瑞克這次是指示或是提問,$p_i = 1$ 為指示,$p_i = 2$ 為提問

$u_i$、$v_i$ 為材料編號,如果這筆操作是指示,那就要依照題意合併 $u_i$ 和 $v_i$ 所在的兩堆材料;如果這筆操作是提問,輸入只會包含 $u_i$ 不會有 $v_i$

所有輸入變數皆為整數

 

輸入格式

$N\quad Q$

$p_1\quad u_1\quad v_1$

$p_2\quad u_2\quad v_2$

$...$

$p_Q\quad u_Q\quad v_Q$

輸出說明

輸出變數說明

$D_i$ 代表該筆詢問 $u_i$ 所在的材料堆的編號

$W_i$ 代表該筆詢問 $u_i$ 所在的材料堆的重量

$T_i$ 代表當下總共有多少堆材料

 

輸出格式

$D_1\quad W_1\quad T_1$

$D_2\quad W_2\quad T_2$

$...$

$D_i\quad W_i\quad T_i$

$...$

範例輸入
6 8
1 1 2
1 2 5
2 1
2 2
2 3
1 3 4
2 1
2 4
範例輸出
1 3 4
1 3 4
3 1 4
1 3 3
3 2 3
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (5%): 10.0s , <1K
公開 測資點#1 (5%): 1.0s , <1K
公開 測資點#2 (5%): 1.0s , <1K
公開 測資點#3 (5%): 1.0s , <1K
公開 測資點#4 (5%): 1.0s , <1K
公開 測資點#5 (5%): 1.0s , <1K
公開 測資點#6 (5%): 1.0s , <1M
公開 測資點#7 (5%): 1.0s , <1M
公開 測資點#8 (5%): 1.0s , <1M
公開 測資點#9 (5%): 1.0s , <1M
公開 測資點#10 (5%): 1.0s , <1M
公開 測資點#11 (5%): 1.0s , <1M
公開 測資點#12 (5%): 1.0s , <1M
公開 測資點#13 (5%): 1.0s , <1M
公開 測資點#14 (6%): 1.0s , <1M
公開 測資點#15 (6%): 1.0s , <1M
公開 測資點#16 (6%): 1.0s , <50M
公開 測資點#17 (6%): 1.0s , <50M
公開 測資點#18 (6%): 1.0s , <50M
提示 :

$1\leq N\leq 10^5$

$1\leq Q\leq 3\times 10^6$

$p_i\in \{ 1, 2\}$

$1\leq \forall u_i, \forall v_i\leq N$

$u_i\neq v_i$

 

這題要注意輸入輸出的速度

使用C++要記得加 cin.tie(0), cout.tie(0), ios_base::sync_with_stdio(0);

使用Python要避免使用 input()

使用Java要避免使用 Scanner

標籤:
DSU 並查集 啟發式合併 路徑壓縮
出處:
[管理者:
revival0728 (10th進階助教 (✿◕‿◕✿))
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」