1090個の危険物コンテナ(25分)

商品の場合は、コンテナ輸送、我々はない箱に詰めた商品の非互換性に特に注意しなければなりません。可燃性の液体と酸化剤が同じ場合であってはならないような、それは簡単に爆発の原因となります。

この質問は、項目のリスト与えられた互換性がありません、あなたは彼らが唯一の同じボックスにインストールできるかどうかを判断するために、各コンテナに商品のリストをチェックする必要があります。

入力フォーマット:

最初の行の入力は、2つの正の整数が得られる:N(≤104)非互換性のペアの数であり、M(≤100)コンテナ特異項目リスト。

次いで、2つのデータブロックに分割が挙げられます。N行の最初のブロック、非相溶性物質の各所与の一組。M行を有する第2のブロックは、各行は、次の形式を箱に詰め商品のリストを与えます。

K G[1] G[2] ... G[K]

前記  K (≤1000)、物品の個数であるG[i] 物品の数です。簡単にするために、5桁の数字との各項目を表します。2つの数字がスペースで区切られています。

出力フォーマット:

各パッケージのリストについては、それが輸送に安全であるかどうかを判断します。行には不適合品がない場合、出力  Yes、そうでなければ出力  No

サンプル入力:

6 3
20001 20002
20003 20004
20005 20006
20003 20001
20005 20004
20004 20006
4 00001 20004 00002 20003
5 98823 20002 20003 20006 10010
3 12345 67890 23333

出力例:

No
Yes
Yes
#include<iostream>
#include<unordered_map>
#include<vector>
using namespace std;
int main(){
//	freopen("input.txt","r",stdin);
	int n,m;
	cin>>n>>m;
	unordered_map<int, vector<int> > mp;
	for(int i=0;i<n;i++){
		int x1,x2;
		scanf("%d %d",&x1,&x2);
		mp[x1].push_back(x2);
		mp[x2].push_back(x1);
	}
	while(m--){
		int k,flag=0;
		scanf("%d",&k);
		vector<int> v(k);
		for(int i=0;i<k;i++) scanf("%d",&v[i]);
		for(auto it:v){
			for(auto it2:mp[it]){
				for(auto it3:v){
					if(it2==it3){
						flag=1;
						break;
					}
				}
			}
		}
		printf("%s\n", flag?"No":"Yes");
	}
	
	return 0;
}

 

公開された67元の記事 ウォン称賛14 ビュー10000 +

おすすめ

転載: blog.csdn.net/weixin_38603360/article/details/103704918