小希的迷宮 並查集

2021-10-03 10:47:12 字數 623 閱讀 6074

由於任意兩個房間之間僅有一條路徑相通,所以一定不存在環,即所有的點都在乙個集合之中。對於輸入的兩點,如果fin

d(a)

==fi

nd(b

)find(a)==find(b)

find(a

)==f

ind(

b),則說明已經在同一集合中,再連線就會構成迴路。

#include using namespace std;

const int maxn = 1e5 + 10;

int fa[maxn], vis[maxn];//用vis記錄點是否出現過

bool flag;

void init()

flag = true;

}int find(int x)

void union_set(int x, int y)

else

}void check()

if (cnt > 1) }}

int main()

if (x == 0 && y == 0)

else

}}

並查集 小希的迷宮

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

小希的迷宮(並查集)

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

小希的迷宮 並查集

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