您的位置:首页 > 其它

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;

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