#include<stdlib.h>
#include<stdio.h>
#include<string>
#include<cstring>
#include<algorithm>
#include<math.h>
#include<queue>
using namespace std;
bool country[1010][1010];
bool visited[1010];
int N,M,count_;
void bfs(int n)
{
count_++;
queue<int> q;
q.push(n);
int i;
while(q.empty()==false)
{
n=q.front();
visited[n]=true;
q.pop();
for(i=1;i<=N;i++)
{
if(visited[i]==false&&country[n][i]==true)
{
visited[i]=true;
q.push(i);
}
}
}
}
int main()
{
int i,j,a,b;
while(scanf("%d",&N)!=EOF&&N!=0)
{
memset(country,false,sizeof(country));
memset(visited,false,sizeof(visited));
count_=0;
scanf("%d",&M);
for(i=1;i<=M;i++)
{
scanf("%d %d",&a,&b);
country[a][b]=country[b][a]=true;
}
for(i=1;i<=N;i++)
{
if(visited[i]==false)
{
bfs(i);
}
}
printf("%d\n",count_-1);
}
return 0;
}
九度1012
最新推荐文章于 2018-02-04 17:43:04 发布