上网查阅资料发现都是用的c++的map和vector这一块不太了解 看来要恶补
附上没有ac的代码
如果有同学看出错误请指正
#include<stdio.h>
struct box
{
int box1;
int box2;
}w[20010];
int main()
{
int n,m;
scanf("%d %d",&n,&m);
int c[20010]={0};
int e;
for(int i=0;i<n;i++)
{
int a,b;
scanf("%d %d",&a,&b);
c[a]++;
c[b]++;
w[i].box1=a;
w[i].box2=b;
}
for(int j=0;j<m;j++)
{
int k;
scanf("%d",&k);
int flag=0;
int b[100010]={0};
for(int i=0;i<k;i++)
{
int d;
scanf("%d",&d);
if(flag==1)
{
continue;
}
else if(b[d]==1)
{
flag==1;
continue;
}
else if(c[d]!=0)
{
e=c[d];
for(int i=0;i<n;i++)
{
if(d==w[i].box1)
{
b[w[i].box2]=1;
c[d]--;
}
else if(d==w[i].box2)
{
b[w[i].box1]=1;
c[d]--;
}
if(c[d]==0){
break;
}
}
c[d]=e;
}
}
if(flag==1)
{
printf("No\n");
}
else
{
printf("Yes\n");
}
}
return 0;
}