luoguP2342 疊積木(並查集)

2022-03-01 09:11:59 字數 567 閱讀 6851

傳送門

up[i] 表示乙個木塊上面有多少個

all[i] 表示整個連通塊內有多少個

那麼 乙個木塊下面的木塊個數為 all[root[i]] - up[i] - 1

注意:up[i] 可以在 find 函式中維護,而 all[i] 不好維護,那麼我們只需要祖先節點的 all[i] 表示整個連通塊內木塊的數目即可

合併時也注意維護

——**

1 #include 2 #include 3

#define n 100000145

intn;

6int

f[n], up[n], all[n];

78 inline int

read()916

17 inline int find(int

x)18

25return

f[x];26}

2728

intmain()

2947

else

4853}54

return0;

55 }

view code

疊積木(加權並查集)

題目描述 約翰和貝西在疊積木。共有30000塊積木,編號為1到30000。一開始,這些積木放在地上,自然地分成n堆。貝西接受約翰的指示,把一些積木疊在另一些積木的上面。一旦兩塊積木相疊,彼此就再也不會分開了,所以最後疊在一起的積木會越來越高。約翰讓貝西依次執行p條操作,操作分為兩種 第一種是移動操作...

題解 P2342 疊積木

約翰和貝西在疊積木。共有30000塊積木,編號為1到30000。一開始,這些積木放在地上,自然地分成n堆。貝西接受約翰的指示,把一些積木疊在另一些積木的上面。一旦兩塊積木相疊,彼此就再也不會分開了,所以最後疊在一起的積木會越來越高。約翰讓貝西依次執行p條操作,操作分為兩種 請編寫乙個程式,幫助貝西回...

疊箱子 並查集

題目 話說上次偉神和肖神去買東西,由於偉神身材瘦削,體力不支所以沒能把肖神想要的東西都揹回來,最後還是在基地同學的幫助下,才勉強揹回了價值最大的物品。對於這個事情,肖神非常不滿,於是,肖神為偉神制定了一套鍛鍊身體的方案。肖神從網上網購了 n 個石塊 1 n 30000 這些石塊的編號從1到n不等。肖...