1090 危险品装箱 (25 分)最后一个测试点

  • Post author:
  • Post category:其他


1090 危险品装箱 (25 分)

这个题目做到最后我只能说我好难。。。。

用了map映射vector,好不容易让第三个测试点不超时了,结果一直提示我第四个测试点错误。。。

在这里插入图片描述
你知道我有多绝望么。。。。。

百度也找不到。

经过我反复测试,最后发现是最后一个循环的break写的不合适,导致下个测试案例的输入出现问题。

改正以后。。。。。测试点2又超时了。。。

在这里插入图片描述
吐血。。。。。。。。。

你猜我怎么改的,,,我把for调换了一下就过了,而且效率还贼高。

在这里插入图片描述
在这里插入图片描述
你敢信??果然还是我太菜了。。。

源代码如下

#include<iostream>
#include<vector>
#include<stdio.h>
#include<map>
using namespace std;
int main() {
	int N, M, tmp1, tmp2;
	scanf("%d %d", &N, &M);
	vector<int>V;
	map<int, vector<int>>Map;
	for (int i = 0; i < N; i++) {
		scanf("%d %d", &tmp1, &tmp2);
		Map[tmp1].push_back(tmp2);
		Map[tmp2].push_back(tmp1);
	}
	while(M--) {
		int flag = 0;
		scanf("%d", &N);
		V.clear();
		for (int j = 0; j < N; j++) {
			scanf("%d", &tmp1);if(flag==1)continue;	 V.push_back(tmp1);
			for (int m = 0; m < Map[tmp1].size(); m++){
				 for (int k = 0; k < V.size(); k++) {
					if (V[k] == Map[tmp1][m]) {
						printf("No\n"); flag = 1; break;
					}
				}
				if (flag == 1)break;
			}
            
		}
		if (flag == 0)printf("Yes\n");
	}
	return 0;
}



版权声明:本文为ZiYuTongXue原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。