版权声明:我的就是我的 https://blog.csdn.net/qq_41638851/article/details/89283297
#include<bits/stdc++.h>
using namespace std;
int bin[1002]; //分组标识数组
int findx(int x){ //找到其“根结点”
int r=x;
while(bin[r]!=r)
r=bin[r];
return r;
}
void merge(int x,int y){
int fx,fy;
fx=findx(x);
fy=findx(y);
if(fx!=fy)
bin[fx]=fy;
}
int main(){
int n,m;
int i;
int x,y,count;
cin>>n;
for(i=1;i<=n;i++)
bin[i]=i;
for(cin>>m;m>0;m--){
cin>>x>>y;
merge(x,y);
}
for(count=0,i=1;i<=n;i++)
if(bin[i]==i)
count++;
cout<<count<<endl;
return 0;
}