https://pintia.cn/problem-sets/994805260223102976/problems/1038429484026175488
这题是我第一次用vector,相当于变长数组。我需要改掉边输入边处理的思路。。明明很简单的题,让我做的特别复杂QAQ 。
#include<iostream>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
int main() {
map<int, vector<int>> mp;
int n, m, a, b, t;
cin >> n >> m;
for(int i=0; i<n; i++){
cin >> a >> b;
mp[a].push_back(b);
mp[b].push_back(a);
}
for(int i=0; i<m; i++){
cin >> t;
int num[100000]={0}, jin[100000]={0}, temp[t], flag=1;
for(int j=0; j<t; j++){
cin >> temp[j];
// 添加违禁
for(int k=0; k<mp[temp[j]].size(); k++){
jin[mp[temp[j]][k]] = 1;
}
}
// 检查
for(int j=0; j<t && flag==1; j++){
if(jin[temp[j]] == 1){
flag = 0;
}
}
if(flag==1){
cout << "Yes" << endl;
}else{
cout << "No" << endl;
}
}
return 0;
}