@[TOC](Leetcode 并查集模板(C++))
Leetcode 并查集模板C++
class Union{
public:
vector<int> parent;
vector<int> size;
int setCount;
Union(int _n): size(_n,1), setCount(_n), parent(_n){
iota(parent.begin(), parent.end(), 0);
}
int findparent(int x){
return x==parent[x] ? x:(parent[x] = findparent(parent[x]));
}
bool unitset(int x, int y){
x = findparent(x);
y = findparent(y);
if(x==y) return false;
if(size[x] < size[y]) swap(x,y);
parent[y] = parent[x];
setCount--;
size[x] += size[y];
return true;
}
bool connected(int x, int y){
x = findparent(x);
y = findparent(y);
return x==y;
}
};