int find(int x)
{
int r=x;
while(r!=b[r])
{
r=b[r];
}
return r;
}
void merge(int a,int c)
{
int fa,fc;
fa=find(a);
fc=find(c);
if(fa!=fc)
b[fa]=fc;
}
int main()
{
for(int i=1;i<=n;i++)
b[i]=i;
for(int i=1;i<=m;i++)
{
int a,b;
scanf("%d%d",&a,&b);
merge(a,b);
}
}
(并查集)
最新推荐文章于 2024-10-11 22:44:26 发布