在看了这道题后,思路很乱,又想用map,又想用结构体,就没有再自己想了,就直接看大佬的代码,自己这种类型的题确实接触的少
#include<bits/stdc++.h>
using namespace std;
int main(){
int k,n,t1,t2;
map<int,vector<int> > m;
cin >> k >>n;
for(int i=0;i<k;i++){
cin >>t1 >>t2;
m[t1].push_back(t2);
m[t2].push_back(t1);
}
while(k--){
int num,a[100000]={0},flag=0,n;
scanf("%d",&num);
vector<int> v(num);
for(int i=0;i<num;i++){
cin>>v[i];
a[n]=1;
}
for(int i=0;i<num;i++){
for(int j=0;j<m[v[i]].size();j++)
{
if(a[m[v[i]][j]]==1) flag=1;
}
}
printf("%s\n",flag?"No":"Yes");
}
return 0;
}
加深了对vector的使用,也开拓了新思路