并查集

参考:并查集 - 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;  // 初始化并查集:每个矩形独立
    }

 

posted @ 2025-11-22 12:58  菜鸡の编程日常  阅读(6)  评论(0)    收藏  举报