求助,全mle
查看原帖
求助,全mle
522847
NCO_Dongfeng_MS楼主2025/8/31 23:58
#include<iostream>
using namespace std;
int n,m,x,y,ans;
int book[1010];
int find(int x){
    if(book[x]==x) return x;
    else return book[x]=find(x);
}
void join(int x,int y){
    int f1=find(x),f2=find(y);
    if(f1!=f2) {
        book[f1]=f2;
    }
}
int main(){
    while(1){
        cin>>n;
        if(n==0){
            break;
        }
        ans=0;
        for(int i=1;i<=n;i++) book[i]=i;
        cin>>m;
        for(int i=1;i<=m;i++){
			cin>>x>>y;
            join(x,y);
        }
        for(int i=1;i<=n;i++){
			if(book[i]==i) ans++;
        }
        cout<<ans<<'\n';
    }
	return 0;
}
2025/8/31 23:58
加载中...