题目链接
题解在题目里
关键代码段:for (int i = 0; i < pre.size(); i++)
{
for (int j = 0; j < key[pre[i]].size(); j++)
{
if (v[key[pre[i]][j]] == 1)//如果存在就输出No
{
flag = 1;
break;
}
}
}
#include
#include
#include
#include
using namespace std;
unordered_map>key;//有多个不兼容的
int main()
{
int n, m;
cin >> n >> m;
for (int i = 0; i < n; i++)
{
string a, b;
cin >> a >> b;
key[a].push_back(b);
key[b].push_back(a);
}
while (m--)
{
int k;
cin >> k;
vectorpre;//保存要查找的数据
unordered_mapv;//标记是否已经存在
int flag = 0;
while (k--)
{
string a;
cin >> a;
v[a] = 1;
pre.push_back(a);
}
for (int i = 0; i < pre.size(); i++)
{
for (int j = 0; j < key[pre[i]].size(); j++)
{
if (v[key[pre[i]][j]] == 1)//如果存在就输出No
{
flag = 1;
break;
}
}
}
if (flag == 1)
cout << "No" << endl;
else
{
cout << "Yes" << endl;
}
}
return 0;
}