并查集模板

for(int i=1;i<=n;++i) f[i]=i;
int F(int x)//找祖先
{
   if(x==f[x]) return x;
   else return f[x]=F(f[x]);
}//压缩路径
//合并
int fx=F(x),fy=F(y);
f[fx]=fy;

  

原文地址:https://www.cnblogs.com/adelalove/p/8683908.html