一片伟大的净土

灵魂的归处,肉体的坟墓。

并查集

2023/12/6
int find(int x){
    if(f[x]==x)return x;
    else return f[x]=find(f[x]);//注意有return
}
void unit(int x,int y){
    int f1=find(x),f2=find(y);
    f[f1]=f2;
}

int main(){
    //定义f[i]=j,节点i在集合j中
    for(int i=1;i<=n;++i)f[i]=i;//初始化

    //最后使用的时候刷新一下状态
    for(int i=1;i<=n;++i)f[i]= find(f[i]);
    return 0;
}