您的位置:首页 > 其它

SDUT 2129树结构练习——判断给定森林中有多少棵树(并查集)

2012-05-27 17:25 267 查看
题目链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2129

最裸的并查集。。模板代码,好久没打过了。

#include<stdio.h>
int p[1001];
int find(int x)
{
int a=x;
while(p[a]!=a)
a=p[a];
return a;
}
void mermge(int x,int y)
{
int x1=find(x),y1=find(y);
if(x1!=y1)
p[x1]=y1;
}
int main()
{
int a,b,c,m,n;
while(scanf("%d%d",&a,&b)!=EOF)
{
for(c=1;c<=a;c++)
p[c]=c;
for(c=1;c<=b;c++)
{
scanf("%d%d",&m,&n);
mermge(m,n);
}
for(c=1,n=0;c<=a;c++)
{
if(p[c]==c)
n++;
}
printf("%d\n",n);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: