hdu 1232 畅通工程
2012-07-26 15:05
197 查看
点击打开链接
做的第一个并查集
#include"stdio.h"
int set[1005];
int find(int x)
{
int r;
r=x;
while(set[r]!=r)
r=set[r];
return r;
}
void merge(int x,int y)
{
int f1,f2;
f1=find(x);
f2=find(y);
if(f1!=f2)
set[f1]=f2;
}
int main()
{
int n,m,x,y,i,count;
while(scanf("%d",&n),n)
{
scanf("%d",&m);
for(i=1;i<=n;i++)
set[i]=i;
for(i=0;i<m;i++)
{
scanf("%d%d",&x,&y);
merge(x,y);
}
count=-1;
for(i=1;i<=n;i++)
if(set[i]==i)
count++;
printf("%d\n",count);
}
return 0;
}
做的第一个并查集
#include"stdio.h"
int set[1005];
int find(int x)
{
int r;
r=x;
while(set[r]!=r)
r=set[r];
return r;
}
void merge(int x,int y)
{
int f1,f2;
f1=find(x);
f2=find(y);
if(f1!=f2)
set[f1]=f2;
}
int main()
{
int n,m,x,y,i,count;
while(scanf("%d",&n),n)
{
scanf("%d",&m);
for(i=1;i<=n;i++)
set[i]=i;
for(i=0;i<m;i++)
{
scanf("%d%d",&x,&y);
merge(x,y);
}
count=-1;
for(i=1;i<=n;i++)
if(set[i]==i)
count++;
printf("%d\n",count);
}
return 0;
}
相关文章推荐
- HDU 1232 畅通工程
- hdu 1232 畅通工程
- HDU 1232 畅通工程 并查集简单应用
- 题解:HDU 1232: 畅通工程 (并查集)
- hdu 1232 畅通工程
- HDU - 1232 畅通工程(并查集)
- HDU-1232 畅通工程
- Graph Theory NO.6 HDU_1232_畅通工程_并查集
- HDU 1232 畅通工程 笔记
- hdu 1232 畅通工程并查集版
- HDU 1232 畅通工程(九度OJ 1012)
- 畅通工程_hdu_1232(并查集)
- hdu 1232 畅通工程(并查集)
- hdu 1232 畅通工程(最小生成树or并查集)
- [ACM] hdu 1232 畅通工程(并查集)
- hdu 1232 畅通工程(基础模板)
- hdu 1232 畅通工程 并查集
- 杭电acm1232 hdu-acm-1232畅通工程解题报告
- HDU 1232 畅通工程(并查集)
- HDU 1232 畅通工程 并查集