求助,全是MLE
查看原帖
求助,全是MLE
553849
wangmaocheng楼主2022/6/12 23:13
#include <bits/stdc++.h>
\
using namespace std;
int n,m,a[100005]; 
int find(int x)
{
	if(a[x]==x)
	{
		return x;
	}
	else
	{
		int t=find(a[x]);
		a[x]=t;
		return t;
	}
}
void cr(int x,int y)
{
	a[find(y)]=find(x);
	a[y]=x;
}
int main()
{
	while(cin>>n)
	{
		if(n==0)
		return 0;
		cin>>m;
		for(int i=1;i<=n;i++)
		{
			a[i]=i;
		}
		for(int i=1;i<=m;i++)
		{
			int x,y;
			cin>>x>>y;
			cr(x,y);
		}
		int cnt=0;
		for(int i=1;i<=n;i++)
		{
			if(a[i]==i)
			{
				cnt++;
			}
		}
		cout<<cnt-1<<endl;
	}
    return 0;
}




2022/6/12 23:13
加载中...