并查集【模板】

· · 算法·理论

void Disjoint_set(int x){
    for(int i=1;i<=x;i++){
        f[i]=i;
    }
}
int find(int x){
    if(x==f[x]){
        return x;
    }
    return f[x]=find(f[x]);
}
void merge(int x,int y){
    f[find(x)]=find(y);
}