并查集

void init(){
    for(int i = 1; i <= N; i++)
        f[i] = i;
}

int find(int k)
{
    return f[k] == k? k : f[k] = find(f[k]);
}

int union(int a, int b){
    f[find(b)] = find(a);
}

 

posted @ 2019-06-10 10:59  Hanasaki  阅读(115)  评论(0)    收藏  举报