L2-025 分而治之

题目链接

解题思路:

傻掉了  一开始用的并查集 。。结构体就可以

代码如下:

#include<iostream>
#include<cstring>
using namespace std;
const int maxn=1e4+10;
bool v[maxn];
struct node
{
	int x;
	int y;
}a[maxn];
int main()
{
	int i,j,k,x,y,n,m,p;
	int flag;
	cin>>n>>m;
	for(i=0;i<m;i++)
	{
		cin>>a[i].x>>a[i].y;
	}
	cin>>k;
	while(k--)
	{
		memset(v,false,sizeof(v));
		flag=0;
		cin>>p;
		for(i=0;i<p;i++)
		{
			cin>>x;
			v[x]=true;
		}
		for(i=0;i<m;i++)
		{
			if(v[a[i].x]!=true&&v[a[i].y]!=true)
			{
				flag=1;
				break;
			}
		}
		if(flag)
		  cout<<"NO"<<endl;
		else
		  cout<<"YES"<<endl;
	} 
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43819762/article/details/109752120