初始化
fa[i]=i;
即各个元素是自己的父亲节点,各个节点独立。
合并
void merge(int u,int v)
{
int t1=find(u);
int t2=find(v);
fa[t1]=t2;
return;
}
查找
int find(int n)
{
return fa[n]==n?n:fa[n]=find(fa[n]);
}
查找的同时进行路径压缩
注意:fa[n]=find(fa[n]) 不是 fa[n]=find(n) 否则会出现死循环。