文章目录
- 题目解读
- 输入格式
- 输出格式
- 思路
- Ac Code
- 参考
题目解读
在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破。为此参谋部提供了若干打击方案。本题就请你编写程序,判断每个方案的可行性。
输入格式
第一行给一个N和M,表示敌方城市个数和连接两城市的通路条数。
随后M行,每行给出一条通路所连接的两个城市的编号,
输出格式
对于每套方案,如果可行就输出YES,否则输出NO。
思路
攻击完之后,遍历每个顶点,判断其是否有边相连,如果有的话则NO
Ac Code
#include<bits/stdc++.h>using namespace std;const int N =1e4+10;struct range{int x,y;
}r[N]; int main(){int n,m; cin >> n >> m;for(int i=0; i<m; i++){cin >> r[i].x >> r[i].y;}int k;cin >> k;while(k--){//记录哪条边被攻击了 map<int,bool> mp;int t;cin >> t;for(int i=0; i<t; i++){int x;cin >> x;mp[x]=1;}//遍历所有边,bool flag=true; for(int i=0; i<m; i++){//一条边被打了就可以 if(mp.count(r[i].x) || mp.count(r[i].y)){continue;}//如果有一条边没有被攻击,势必有不孤立的城市 flag=false;break;} if(flag)cout<<"YES";else cout<<"NO";cout << endl; }return 0;
}
参考
B站up主 : 一天五顿饭
🌻编写本篇文章目的是笔者想以输出的形式进行学习,顺便记录学习点滴🌻
🌹 如果本篇文章对你有帮助的话那就点个赞吧👍🌹
😇 本篇文章可能存在多处不足,如有修改意见,可以私信或者评论我哦 😇