int par[MAXN];//父节点
int sum[MAXN];
int Find(int x)
{
if(par[x] != x)
par[x] = Find(par[x]);
return par[x];
}
void Union(int x,int y) //合并x和y所在集合
{
par[Find(x)] = Find(y);
}
int Abs(int a)
{
return a>0?a:-a;
}
void Merge(int a,int b) //合并a和b的集合(并查找集合个数)
{
int x = Find(a);
int y = Find(b);
if(x!=y){
par[y] = x;
sum[x] += sum[y];
}
}
double Dis(int a,int b)
{
return sqrt( double(dx[a]-dx[b])*(dx[a]-dx[b]) + (dy[a]-dy[b])*(dy[a]-dy[b]) );
}
void init(int n)//初始化
{
for(int i = 0;i <= n;i++){
par[i] = i;
sum[i] = 1;
}
}
来源:CSDN
作者:葉子曦
链接:https://blog.csdn.net/qq_42937838/article/details/104124358