听取WA声一片
查看原帖
听取WA声一片
1047214
Dragon_dragon楼主2024/6/8 13:53

大佬看看有什么问题,求求了

#include<bits/stdc++.h>
using namespace std;
int fa[10010];
int g (int x)
{
	if (fa[x]==x)
	{
		return x;
	}
	return fa[x]=g(fa[x]);
}
void merge (int x,int y)
{
	x=g(x);
	y=g(y);
	if (x!=y)
	{
		fa[y]=x;
	}
}
int main(){
	
	int n,m;
	cin >> n >> m;
	for (int i=1;i<=n;i++)
	{
	    fa[i]=i;
	}
	for (int i=0;i<m;i++)
	{
	    int x,y;
	    cin >> x >> y;
	    merge(x,y);
	}
	int ans=-1;
	for (int i=1;i<=n;i++)
	{
	    if (fa[i]==i)
	    {
	        ans++;
	    }
	}
	cout << ans;
	
	return 0;
}
2024/6/8 13:53
加载中...