感觉自己又犯了什么逆天粗心错,求调玄关QwQ
  • 板块P1536 村村通
  • 楼主lucy2012
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/4/29 22:27
  • 上次更新2024/4/30 14:38:32
查看原帖
感觉自己又犯了什么逆天粗心错,求调玄关QwQ
1252442
lucy2012楼主2024/4/29 22:27
#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,sum=0;
int fa[5010]={0};
int find(int x){
	if(x==fa[x])
	    return x;
	return fa[x]=find(fa[x]);
}
void in(int x,int y){
	int f1=find(x),f2=find(y);
	if(f1!=f2)
	    fa[f1]=f2;
}
int main(){ 
    while(1){
        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;
		    in(x,y);
	    }
	    for(int i=1;i<=m;i++){
		    if(find(i)==i)
		        sum++;
	    }
	    cout<<sum-1<<endl;
    }
	return 0;
}

致谢看到这的

2024/4/29 22:27
加载中...