分析:检查每一条边是否有已知顶点与之相连,如果无则输出No。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 1e4+10;
struct Edge{
int u, v;
}e[maxn];
int vis[maxn];
int main(){
//freopen("aa.txt", "r", stdin);
int n, m, k, num, tem;
cin >> n >> m;
for(int i = 0; i<m; i++){
cin >> e[i].u >> e[i].v;
}
cin >> k;
for(int i = 0; i<k; i++){
memset(vis, 0, sizeof vis);
cin >> num;
int flag = 1;
for(int j = 0; j<num; j++){
cin >> tem;
vis[tem] = 1;
}
for(int j = 0; j<m; j++){
int u = e[j].u, v = e[j].v;
if(!vis[u] && !vis[v]) {
flag = 0;
break;
}
}
flag ? cout << "Yes\n" : cout << "No\n";
}
return 0;
}