并查集
并查集
合并 查询的效率很高 可以近似看作 \(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]);
}

浙公网安备 33010602011771号