int find(int x) {
if (p[x] != x) {
p[x] = find(p[x]);
}
return p[x];
}
这是find,找头
void join(int x,int y)
{
int fx=find(x), fy=find(y);
if(fx != fy)
p[fx]=fy;
}
void join(int x,int y)
{
int fx=find(x), fy=find(y);
if(fx != fy){
if(rk[fx]<rk[fy]) p[fx]=fy;
else if(rk[fx]>rk[fy]) p[fy]=fx;
else {
p[fx]=fy;
rk[fy]++;
}
}
}
这是join,连接两个有关系的