文章目錄
- 題目解讀
- 輸入格式
- 輸出格式
- 思路
- 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主 : 一天五頓飯
🌻編寫本篇文章目的是筆者想以輸出的形式進行學習,順便記錄學習點滴🌻
🌹 如果本篇文章對你有幫助的話那就點個贊吧👍🌹
😇 本篇文章可能存在多處不足,如有修改意見,可以私信或者評論我哦 😇