我这样写是不是有问题
查看原帖
我这样写是不是有问题
575655
Chtholly_is_cute楼主2024/2/28 21:40

code:

#include<bits/stdc++.h>
using namespace std;
int fa[1000001],n,m;
int find(int x){
    if(x!=fa[x])fa[x]=find(fa[x]);
    return fa[x];
}
void unite(int x,int y){
    int f=find(x),j=find(y);
    fa[f]=j;
}
int main(){
    int x,y;
    int ans=0;
    Begin:
    cin>>n;
    if(n==0)return 0;
    cin>>m;
    for(int i=1;i<=n;i++){
        fa[i]=i;
    }
    for(int i=1;i<=m;++i){
        cin>>x>>y;
        unite(x,y);
    }
    for(int i=1;i<=n;i++){
        if(find(i)==i)++ans;
    }
    cout<<ans-1<<endl;
    goto Begin;
}
2024/2/28 21:40
加载中...