文章

3

粉丝

143

获赞

2

访问

21.4k

头像
并查集
P1367 吉林大学机试题
发布于2021年8月22日 14:22
阅读数 6.7k

#include<iostream>
using namespace std;

const int N=1010;
int n, m;
int p[N];
int find(int x)
{
	if(p[x]!=x)	p[x]=find(p[x]);
	return  p[x];
}

int main()
{
	while(cin>>n>>m)
	{
		for(int i=1; i<=n; i++)	p[i]=i;
		while(m--)
		{
			int a, b;
			cin>>a>>b;
			p[find(a)]=find(b);
		}
		bool suc=true;
		int fa = find(1);
		for(int i=2; i<=n; i++)
			if(fa!=find(i))
				suc=false;
		if(suc)	cout<<"YES"<<endl;
		else cout<<"NO"<<endl;
	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发