HDOJ1232 ( 畅通工程 ) 【并查集】
Problem : 1232 ( 畅通工程 ) Judge Status : Accepted
RunId : 5938141 Language : C Author : qq1203456195
Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta
RunId : 5938141 Language : C Author : qq1203456195
Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta
#include <stdio.h>
#include <string.h>
int set[1005],s,n;
void MergeSet(int a,int b)
{
int i;
s--;
for (i=0;i<n;i++)
{
if(set[i]==a)
set[i]=b;
}
}
int main()
{
int i,m,a,b,f,t;
while(scanf("%d",&n),n)
{
s=n-1;
scanf("%d",&m);
for (i=0;i<n;i++)
set[i]=i;
for (i=0;i<m;i++)
{
scanf("%d%d",&a,&b);
f=set[a-1];
t=set[b-1];
if(f!=t)
MergeSet(f,t);
}
printf("%d\n",s);
}
return 0;
}
找我内推: 字节跳动各种岗位
作者:
ZH奶酪(张贺)
邮箱:
cheesezh@qq.com
出处:
http://www.cnblogs.com/CheeseZH/
*
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

浙公网安备 33010602011771号