A1149 Dangerous Goods Packaging (25分)

Posted tsruixi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了A1149 Dangerous Goods Packaging (25分)相关的知识,希望对你有一定的参考价值。

一、技术总结

  1. 这一题样例也要看清楚,不然想当然也会出错。
  2. 是直接使用map<int, int>进行数据存储也就是映射,以为是一对一的关系,其实发现是多对多的关系;可以使用map<int, vector> mp,进行存储;
  3. 思路大致是首先使用mp存储好对应关系,然后再使用vector存储要运输的货物,遍历,然后看其对应关系中是否存在要运输的货物中,这里使用set进行解决,也就是在使用vector进行存储时,也在set中存储。

二、参考代码

#include<iostream>
#include<set>
#include<map>
#include<vector>
using namespace std;
vector<int> all[100010];
int main(){
	int n, m, a, b;
	scanf("%d%d", &n, &m);
	map<int, int> mp;
	for(int i = 0; i < n; i++){
		scanf("%d%d", &a, &b);
		all[a].push_back(b);
		all[b].push_back(a);
	}
	int k;
	for(int i = 0; i < m; i++){
		scanf("%d", &k);
		vector<int> v(k);
		set<int> s;
		for(int j = 0; j < k; j++){
			scanf("%d", &v[j]);
			s.insert(v[j]);			
		}
		int flag = 1;
		for(int j = 0; j < k; j++){
			for(int p = 0; p < all[v[j]].size(); p++){
				if(s.find(all[v[j]][p]) != s.end()){
					printf("No
");
					flag = 0;
					break;
				}				
			}
			if(flag == 0) break;
		}
		if(flag == 1) printf("Yes
");
	}
	return 0;
}

以上是关于A1149 Dangerous Goods Packaging (25分)的主要内容,如果未能解决你的问题,请参考以下文章

A1149 Dangerous Goods Packaging (25分)

1149 Dangerous Goods Packaging (25分)

pat 1149 Dangerous Goods Packaging(25 分)

1149 Dangerous Goods Packaging

1149 Dangerous Goods Packaging (25 分)难度: 一般 / 知识点: 哈希表

PAT甲级——A1149DangerousGoodsPackaging25