PTA1090 危險品裝箱 (25分)詳解
1090 危險品裝箱 (25分)詳解
資料:
6 3
20001 20002
20003 20004
20005 20006
20003 20001
20005 20004
20004 20006
本題分析
:
- 題目的關鍵在於如何解決編號不相容問題,由以上資料可知,20003與20004和20001都不相容.
此時我們可以用:
map<int,vector<int>>mp;//用於存放一對多的關係
2.難點分析
//此處迴圈是難點,第一個for迴圈是為了遍歷G[i],
第二個是遍歷每個G[i]所對應的vector陣列,
如本題資料中20003(G[i])所對應的vector中有(20004和20001)兩個值,然後用從c[]陣列判斷G[i]所對應的編號是否在此次 cin >> G[i];中存在,
若存在flag標記為1.
for(int i=0; i<k; i++){
for(int j=0; j<mp[G[i]].size(); j++){
if(c[mp[G[i]][j]]==1) flag=1;
}
}
程式碼
#include<bits/stdc++.h>
using namespace std;
map<int,vector<int>>mp;//用於存放一對多的關係
int main() {
int m,n;
cin >> m >> n;
while(m--){
int a,b;
cin >> a >> b;
mp[a].push_back(b);
mp[b].push_back(a);
}
while(n--){
int k;
cin >> k;
int G[k],c[100010]={0};//用於存放物品編號,注意每次迴圈初始化
for(int i=0; i<k; i++){
cin >> G[i];
c[G[i]]=1;//用於標記編號是否存在,存在則值為1,否則為零
}
int flag=0;
for(int i=0; i<k; i++){
for(int j=0; j<mp[G[i]].size(); j++){
if(c[mp[G[i]][j]]==1) flag=1;
}
}
if(flag==1){
cout << "No" <<endl;
}
else
cout << "Yes" <<endl;
}
return 0;
}
相關文章
- Linux系統中10個最危險的命令詳解Linux
- (十九)冒險和預測,解決危險就能抓住機會
- php 的 危 險 參 數PHP
- Alex Maccaw:簡歷危險Mac
- 解決方案:邁道科技危險化學品企業安全風險智慧化管控平臺
- 危險的 target=”_blank” 與 “opener”
- 危險的 target="_blank" 與 “opener”
- 棕櫚油挺危險的
- 谷歌為機器人學習加快步伐 機器人危險不危險?谷歌機器人
- 郵箱偽造詳解
- 危險就是一封郵件
- php常見的危險函式PHP函式
- 深入淺出瞭解“裝箱與拆箱”
- 2021年危險化學品生產單位安全生產管理人員答案解析及危險化學品生產單位安全生產管理人員新版試題
- 2020年危險化學品生產單位安全生產管理人員考試題及危險化學品生產單位安全生產管理人員答案解析
- 使用WiFi真的有那麼危險嗎?WiFi
- Linux的10個最危險命令Linux
- Redis禁用或重新命名危險命令Redis
- Android 中的危險許可權Android
- 13 種危險的網路攻擊
- 深入SQLite,一網打盡“危險操作”SQLite
- IIHS:美國最危險車型TOP 10
- 最危險的程式設計錯誤程式設計
- 2020年危險化學品經營單位安全管理人員試題及答案及危險化學品經營單位安全管理人員模擬考試題庫
- 2020年危險化學品經營單位安全管理人員模擬考試題庫及危險化學品經營單位安全管理人員操作證考試
- Linux的10個最危險的命令Linux
- 七類最危險的網路管理員
- Mac OS X 驚現最危險木馬Mac
- Java開發中常見的危險訊號Java
- 軟體開發中最危險的詞語
- 微軟SQLServer密碼管理的危險判斷微軟SQLServer密碼
- 危險區域闖入識別系統
- 講解SQL Server危險擴充套件儲存刪除和恢復SQLServer套件
- java裝箱拆箱Java
- 郵箱格式驗證程式碼詳解
- 目錄檔案有寫許可權 危險
- canvas旋轉核輻射危險警告標誌Canvas
- 一些極度危險的linux命令Linux