poj 2524 并查集
2013-11-03 12:30
417 查看
很水的题,注意输出格式,冒号后面有一个空格 - -
#include <stdio.h>
#define maxn 50000
int father[maxn] ;
int ans;
int find (int x)
{
while(father[x]!=x)
{
x=father[x];
}
return x;
}
int lianjie(int x,int y)
{
int rx,ry;
rx=find(x);
ry=find(y);
if(rx!=ry)
{
--ans;
father[ry]=rx;
}
}
int main(int argc, char *argv[])
{
int x,y;
int n,m;
int i;
int k=1;
while(scanf("%d%d",&n,&m)&&n+m)
{
for(i=1;i<maxn;++i)
father[i]=i;
ans=n;
for(i=0;i<m;i++)
{
scanf("%d%d",&x,&y);
x=find(x);
y=find(y);
lianjie(x,y);
}
printf("Case %d: %d\n",k++,ans);//真tm冒号后面有个空格, 坑爹
}
return 0;
}
#include <stdio.h>
#define maxn 50000
int father[maxn] ;
int ans;
int find (int x)
{
while(father[x]!=x)
{
x=father[x];
}
return x;
}
int lianjie(int x,int y)
{
int rx,ry;
rx=find(x);
ry=find(y);
if(rx!=ry)
{
--ans;
father[ry]=rx;
}
}
int main(int argc, char *argv[])
{
int x,y;
int n,m;
int i;
int k=1;
while(scanf("%d%d",&n,&m)&&n+m)
{
for(i=1;i<maxn;++i)
father[i]=i;
ans=n;
for(i=0;i<m;i++)
{
scanf("%d%d",&x,&y);
x=find(x);
y=find(y);
lianjie(x,y);
}
printf("Case %d: %d\n",k++,ans);//真tm冒号后面有个空格, 坑爹
}
return 0;
}
相关文章推荐
- [ACM] POJ 2524 Ubiquitous Religions (并查集)
- POJ 2524 (简单并查集) Ubiquitous Religions
- POJ训练计划2524_Ubiquitous Religions(并查集)
- poj 2524 Ubiquitous Religions——我感觉是并查集(分类是分治)
- POJ2524 Ubiquitous Religions(并查集)
- POJ 2524 Ubiquitous Religions (并查集)
- poj 2524 这是并查集的最简模型了吧
- poj 2524宗教信仰 并查集水题
- POJ 2524 并查集
- poj 2524 Ubiquitous Religions(并查集)
- POJ 2524 宗教信仰 并查集 基础模板
- POJ 2524 Ubiquitous Religions(水水的并查集)
- [并查集]POJ 2524 Ubiquitous Religions
- POJ1611 并查集 基础 比 2524 复杂一些
- (模板题)poj 2524 Ubiquitous Religions(并查集)
- POJ 2524 Ubiquitous Religions (并查集)
- POJ - 2524 Ubiquitous Religions(并查集)
- POJ 2524 Ubiquitous Religions(并查集)
- poj 2524[并查集]
- POJ2524——宗教(Ubiquitous Religions)【图论,并查集】