#include\x20\x20\x20\n#include\x20\x20\x20\n#include\x20\x20\x20\nusing\x20namespace\x20std;\x20\x20\n\x20\n//\x20用于表示图的邻接表\x20\nvector<vector>\x20graph;\x20\x20\n//\x20标记每个城市是否被攻下\x20\nvector\x20conquered;\x20\x20\n\x20\n//\x20使用BFS遍历图,判断方案的可行性\x20\nbool\x20isFeasible(int\x20Np,\x20vector\x20cities)\x20{\x20\x20\n\x20\x20//\x20重置标记数组\x20\x20\n\x20\x20for\x20(int\x20i\x20=\x200;\x20i\x20<\x20conquered.size();\x20i++)\x20{\x20\x20\n\x20\x20\x20\x20conquered[i]\x20=\x20false;\x20\x20\n\x20\x20}\x20\x20\n\x20\x20//\x20攻下计划攻下的城市\x20\x20\n\x20\x20for\x20(int\x20i\x20=\x201;\x20i\x20<=\x20Np;\x20i++)\x20{\x20\x20\n\x20\x20\x20\x20conquered[cities[i]]\x20=\x20true;\x20\x20\n\x20\x20}\x20\x20\n\x20\x20//\x20使用BFS遍历图\x20\x20\n\x20\x20queue\x20q;\x20\x20\n\x20\x20q.push(cities[1]);\x20\x20\n\x20\x20while\x20(!q.empty())\x20{\x20\x20\n\x20\x20\x20\x20int\x20city\x20=\x20q.front();\x20\x20\n\x20\x20\x20\x20q.pop();\x20\x20\n\x20\x20\x20\x20for\x20(int\x20i\x20=\x200;\x20i\x20<\x20graph[city].size();\x20i++)\x20{\x20\x20\n\x20\x20\x20\x20\x20\x20int\x20nextCity\x20=\x20graph[city][i];\x20\x20\n\x20\x20\x20\x20\x20\x20if\x20(!conquered[nextCity])\x20{\x20\x20\n\x20\x20\x20\x20\x20\x20\x20\x20conquered[nextCity]\x20=\x20true;\x20\x20\n\x20\x20\x20\x20\x20\x20\x20\x20q.push(nextCity);\x20\x20\n\x20\x20\x20\x20\x20\x20}\x20\x20\n\x20\x20\x20\x20}\x20\x20\n\x20\x20}\x20\x20\n\x20\x20//\x20检查是否所有城市都被攻下\x20\x20\n\x20\x20for\x20(int\x20i\x20=\x201;\x20i\x20<\x20conquered.size();\x20i++)\x20{\x20\x20\n\x20\x20\x20\x20if\x20(!conquered[i])\x20{\x20\x20\n\x20\x20\x20\x20\x20\x20return\x20false;\x20\x20\n\x20\x20\x20\x20}\x20\x20\n\x20\x20}\x20\x20\n\x20\x20return\x20true;\x20\x20\n}\x20\x20\n\x20\nint\x20main()\x20{\x20\x20\n\x20\x20int\x20N,\x20M;\x20\x20\n\x20\x20cin\x20>>\x20N\x20>>\x20M;\x20\x20\n\x20\x20//\x20初始化图和标记数组\x20\x20\n\x20\x20graph.resize(N+1);\x20\x20\n\x20\x20conquered.resize(N+1);\x20\x20\n\x20\x20//\x20读入通路信息,构建图\x20\x20\n\x20\x20for\x20(int\x20i\x20=\x200;\x20i\x20<\x20M;\x20i++)\x20{\x20\x20\n\x20\x20\x20\x20int\x20city1,\x20city2;\x20\x20\n\x20\x20\x20\x20cin\x20>>\x20city1\x20>>\x20city2;\x20\x20\n\x20\x20\x20\x20graph[city1].push_back(city2);\x20\x20\n\x20\x20\x20\x20graph[city2].push_back(city1);\x20\x20\n\x20\x20}\x20\x20\n\x20\x20int\x20K;\x20\x20\n\x20\x20cin\x20>>\x20K;\x20\x20\n\x20\x20//\x20逐个判断方案的可行性\x20\x20\n\x20\x20for\x20(int\x20i\x20=\x200;\x20i\x20<\x20K;\x20i++)\x20{\x20\x20\n\x20\x20\x20\x20int\x20Np;\x20\x20\n\x20\x20\x20\x20cin\x20>>\x20Np;\x20\x20\n\x20\x20\x20\x20vector\x20cities(Np+1);\x20\x20\n\x20\x20\x20\x20//\x20读入计划攻下的城市\x20\x20\n\x20\x20\x20\x20for\x20(int\x20j\x20=\x201;\x20j\x20<=\x20Np;\x20j++)\x20{\x20\x20\n\x20\x20\x20\x20\x20\x20cin\x20>>\x20cities[j];\x20\x20\n\x20\x20\x20\x20}\x20\x20\n\x20\x20\x20\x20//\x20判断方案的可行性并输出结果\x20\x20\n\x20\x20\x20\x20if\x20(isFeasible(Np,\x20cities))\x20{\x20\x20\n\x20\x20\x20\x20\x20\x20cout\x20<<\x20"YES"\x20<<\x20endl;\x20\x20\n\x20\x20\x20\x20}else\x20{\x20\x20\n\x20\x20\x20\x20\x20\x20cout\x20<<\x20"NO"\x20<<\x20endl;\x20\x20\n\x20\x20\x20\x20}\x20\x20\n\x20\x20}\x20\x20\n\x20\x20return\x200;\x20\x20\n