题目
思路
水题,hash
代码
#include <iostream>
#include <vector>
using namespace std;
const int nmax = 100010;
vector<int> vec[nmax];
int main()
{
int n, qn;
cin >> n >> qn;
for (int i = 0; i < n; ++i) {
int u, v;
cin >> u >> v;
vec[u].emplace_back(v);
vec[v].emplace_back(u);
}
for (int i = 0; i < qn; ++i) {
int mark[nmax] = { 0 };
int num;
cin >> num;
bool flag = true;
for (int j = 0; j < num; ++j) {
int tmp;
cin >> tmp;
if (mark[tmp] == 1) {
flag = false;
}
for (auto& p : vec[tmp])
mark[p] = 1;
}
flag ? cout << "Yes" << endl : cout << "No" << endl;
}
return 0;
}