並查集例題 HDU 1272

2021-07-03 09:52:18 字數 763 閱讀 5705

並查集主要處理一些不相交集合的合併問題

基本操作:

(1)建立乙個新的並查集,其中包含s個元素的集合。

(2)把元素x和元素y所在的集合合併,要求x和y所在的集合不相交。

(3)找到x所在集合的根,該操作可以用於判斷兩個元素是否位於同一集合。

例題:hdu——1272

int p[maxn];//並查集

int m[maxn];//標記點是否出現過

//把x的父親節點儲存在p[x]中(如果x沒有父親,則p[x]=x)

int find(int x)//查詢x所在樹的根節點

int make(int a,int b)//合併a和b所在的集合

{ int x=find(a);

int y=find(b);

if(x

hdu1272(並查集基礎)

判斷連通圖中是否有迴路,或者未連線的路。雖說是水題並查集,可我怎麼改都是錯,最後發現,題目資料真是坑,0 0,有毛線意思,也不應該是yes啊。給跪了。include include int v 100010 int f 100010 標誌陣列 int find int x int make int ...

hdu 1272 基礎並查集

上次gardon的迷宮城堡小希玩了很久 見problem b 現在她也想設計乙個迷宮讓gardon來走。但是她設計迷宮的思路不一樣,首先她認為所有的通道都應該是雙向連通的,就是說如果有乙個通道連通了房間a和b,那麼既可以通過它從房間a走到房間b,也可以通過它從房間b走到房間a,為了提高難度,小希希望...

hdu1272(基礎並查集)

上次gardon的迷宮城堡小希玩了很久 見problem b 現在她也想設計乙個迷宮讓gardon來走。但是她設計迷宮的思路不一樣,首先她認為所有的通道都應該是雙向連通的,就是說如果有乙個通道連通了房間a和b,那麼既可以通過它從房間a走到房間b,也可以通過它從房間b走到房間a,為了提高難度,小希希望...