您的位置:首页 > 产品设计 > UI/UE

poj 2524 Ubiquitous Religions 并查集问题

2012-07-17 14:13 295 查看
题目连接 :http://poj.org/problem?id=2524

题目大意。已知有n个大学生,其中有m对宗教信仰相同的学生,请你估算这n个学生中最多有多少种宗教信仰。

不多说直接上代码~

View Code

#include<stdio.h>
int set[50005];
int find(int x)
{
int r = x;
while(set[r] != r)
{
r = set[r];
}
return r;
}
void merge(int a,int b)
{
a = find(a);
b = find(b);

if(a == b)
return ;
else
set[a] = b;
}

int main()
{
int i,j,n,a,m,b;
j = 0;
while(scanf("%d %d",&n,&m)&&n||m)
{
j++;
for(i = 1;i <= n;i++)
set[i] = i;

while(m--)
{
scanf("%d %d",&a,&b);
merge(a,b);
}

int count = 0;
for(i =1;i <= n;i++)
if(set[i] == i)
count++;
printf("Case %d: %d\n",j,count);

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: