并查集

并查集

合并 查询的效率很高 可以近似看作 \(O(1)\)

在不加路径压缩的极端情况下会退化成一条链 例如csp-s 2019 ccf 的并查集代码

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

void Union(int x,int y)
{
    if(Find(x)!=Find(y))
        f[Find(x)]=Find(y);
}

int Find(int x)
{
    if(f[x]==x)
        return x;
    return f[x]=Find(f[x]);
}
posted @ 2019-11-14 10:36  nenT  阅读(127)  评论(0)    收藏  举报