并查集
1. 概述
并查集用来解决图的连通性问题,并查集的方法首先要为每一个点建立集合,
接着写出判断两个点是否属于一个集合的方式,最后不断合并集合
常用模板
int find(int i){ //寻找集合首索引,即集合的唯一标识符
if (parent[i] != i) parent[i] = find(parent[i]); //如果自己不是,递归寻找且更新索引
return parent[i];
}
void unions(int i ,int j){
parent[find(i)] = parent[find(j)];
}
bool query(int i,int j){
return find(i)==find(j);
}