码迷,mamicode.com
首页 > 其他好文 > 详细

poj 2524

时间:2014-08-10 21:18:50      阅读:324      评论:0      收藏:0      [点我收藏+]

标签:blog   http   os   io   for   2014   amp   c++   

 

 bubuko.com,布布扣

 

 

 bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣

 

 

 

 

 

 

 

 

#include <iostream>
#include<cstdio>
using namespace std;
#define N 50010
int p[N];
void init(int n)
{ for(int i=1 ;i<=n;i++) p[i]=i ; }
int find(int x)
{ if (x==p[x]) return x;
else return p[x]=find(p[x]);
}


int main( )

{ int n,m,i,x,y,px,py,c=1;
while(scanf("%d%d",&m,&n),m||n)
{ init(m);
for(i=1;i<=n;i++)
{ scanf("%d%d",&x,&y);
px=find(x); py=find(y);
if(px!=py) { p[px]=py; m--;}
}
printf("Case %d: %d\n",c++,m);

}
}

 

 

 

 

 

 

 

 

 

//poj 2524


#include <cstdio>
#include <string>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <iostream>
using namespace std;
#define MAX 50008
int pa[MAX];
int findset(int x){
return x==pa[x]? x : pa[x]=findset(pa[x]);
}
int main(){
int n,m,T=1;
while(scanf("%d%d",&n,&m)==2 &&n){
if(m==0){
printf("Case %d: %d\n",T++,n);continue;
}
for(int i=1;i<=n;i++)pa[i]=i;
int u,v;
for(int i=0;i<m;i++){
scanf("%d%d",&u,&v);
u=findset(u);
v=findset(v);
if(u!=v)pa[v]=u;
}
int ans=0;
for(int i=1;i<=n;i++){
if(pa[i]==i)ans++;
}
printf("Case %d: %d\n",T++,ans);
}
return 0;
}

 

poj 2524,布布扣,bubuko.com

poj 2524

标签:blog   http   os   io   for   2014   amp   c++   

原文地址:http://www.cnblogs.com/2014acm/p/3903295.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!