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,也可以通過它從...