//hloj 9556 畅通工程 //bfs #include<iostream> #include<queue> using namespace std; const int N=100;//最大道路数 int mat[N][N]; bool visited[N]; int n;//实际顶点数 void bfs(int v) { queue<int>Q; Q.push(v); visited[v]=true; while(Q.empty()==false) { int v1=Q.front(); Q.pop(); for(int v2=0;v2<n;v2++) { if(!visited[v2]&&mat[v1][v2]) { Q.push(v2); visited[v2]=true; } } } } bool run(){ int i,j,m,x,y,cnt=0; cin>>n; if(n==0) return false; cin>>m; for(i=0;i<n;i++) { mat[i][j]=0; } for(i=0;i<n;i++) { cin>>x>>y; mat[x-1][y-1]=1; mat[y-1][x-1]=1; } for(i=0;i<n;i++) { if(visited[i]==false) { cnt++; bfs(i); } } cout<<cnt-1<<endl; return true; } int main(){ }