这个题的解法有点巧妙 开始一直段错误或者运行超时 真的气死!
题解如下:
把每一对不相容的的分别存进a,b数组里面
对于每一张清单里的物品存进set里面 再对ab数组进行遍历看是否有不能相容哦的物品同时出现在set里面
ac代码如下:
#include<iostream>
#include<set>
using namespace std;
const int N=10010;
int a[N],b[N];
int main()
{
int n,m;
cin>>n>>m;
for(int i=0;i<n;++i) cin>>a[i]>>b[i];
while(m--)
{
int x;
cin>>x;
set<int> s;
while(x--)
{
int k;
cin>>k;
s.insert(k);
}
bool flag=true;
for(int i=0;i<n;++i)
{
if(s.count(a[i])&&s.count(b[i]))
{
flag=false;
puts("No");
break;
}
}
if(flag) puts("Yes");
}
return 0;
}