题目:
思路分析:
就是每拆一个城市就标记一下
然后遍历每一
const int MAX=100001; struct node{ int u,v; }e[MAX]; int main(){ int n,m; cin>>n>>m; for(int i=0;i<m;i++){ cin>>e[i].u>>e[i].v; } int q; cin>>q; map<int ,int >mp; while (q--) { mp.clear(); int k; cin>>k; while (k--) { int x; cin>>x; mp[x]=1; } int flag=1; for(int i=0;i<m;i++){ if(mp[e[i].u]==0&&mp[e[i].v]==0){ flag=0; break; } } if(flag) cout<<"YES"<<endl; else cout<<"NO"<<endl; } }
条边 检查是否有二个城市仍然连通