并查集
参考:并查集 - OI Wiki
1.并查集的查询操作
int find(int x){ return father[x] == x ? x : father[x] = find(father[x]); }向上寻找x的根节点,并在寻找的过程中实现路径压缩
2.并查集的合并操作
void unite(int x, int y){ x = f[x], y = f[y]; if(x == y) return ; f[x] = y; sz[y] += sz[x]; }
3.并查集的初始化操作
初始化操作时,因此每个元素都是独立的集合,每个元素的根节点都是自身
for(int i = 0; i < m; ++i){ father[i] = i; // 初始化并查集:每个矩形独立 }

浙公网安备 33010602011771号