#include<bits/stdc++.h>
using namespace std;
struct node{
int v1, v2;
};
int main(void){
int N, M;
scanf("%d %d", &N, &M);
vector<node> edge(M);
for(int i = 0; i < M; i++)
scanf("%d %d", &edge[i].v1, &edge[i].v2);
int K;
scanf("%d", &K);
for(int i = 0; i < K; i++){
int n;
scanf("%d", &n);
vector<int> tag(N, 0);
for(int j = 0; j < n; j++){
int a;
scanf("%d", &a);
tag[a] = 1;
}
bool flag = true;
for(int j = 0; j < M; j++)
if(tag[edge[j].v1] != 1 && tag[edge[j].v2] != 1){
flag = false;
break;
}
if(flag) printf("Yes\n");
else printf("No\n");
}
return 0;
}
PAT(A) 1134 Vertex Cover (25 point(s))
最新推荐文章于 2021-08-15 10:58:50 发布
该程序实现了一个图的连通性检查。输入包含图的边数、节点数,以及一系列标记的节点。对于每个标记的节点集合,程序检查是否存在未被标记的节点与它们直接相连,如果存在则输出No,否则输出Yes。
507

被折叠的 条评论
为什么被折叠?



