1090 危险品装箱 (25分)
 

集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里。比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸。

本题给定一张不相容物品的清单,需要你检查每一张集装箱货品清单,判断它们是否能装在同一只箱子里。

输入格式:

输入第一行给出两个正整数:N (≤) 是成对的不相容物品的对数;M (≤) 是集装箱货品清单的单数。

随后数据分两大块给出。第一块有 N 行,每行给出一对不相容的物品。第二块有 M 行,每行给出一箱货物的清单,格式如下:

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

其中 K (≤) 是物品件数,G[i] 是物品的编号。简单起见,每件物品用一个 5 位数的编号代表。两个数字之间用空格分隔。

输出格式:

对每箱货物清单,判断是否可以安全运输。如果没有不相容物品,则在一行中输出 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

分析:

这里我们可以由题目知道,每一行的不能共存的危险品并不只是两两对应(这就与之前那道单身狗的题目有所区别了),虽然是每行一对的出现,但仔细审题会发现并非如此。所以用到容器vector与int用map进行关联。

#include <iostream>
#include <algorithm>
#include<vector>
#include<list>
#include <map>
using namespace std; int main()
{
int n, m, i, j, k, s, l, flag[]={}, danger[];
map<int, vector<int> > mm; //切记 定义时 >> 中间得有空格 > >
cin >> n >> m;
for (i = ; i < n; i++)
{
cin >> j >> k;
mm[j].push_back(k);
mm[k].push_back(j);
}
for (i = ; i < m; i++)
{
int exsit[]={};
scanf("%d", &s);
for (j = ; j < s; j++)
{
scanf("%d", &l);
exsit[l] = ;
for (k = ; k < mm[l].size(); k++)
{
if (exsit[l]&&exsit[mm[l][k]])
{
flag[i]=;
break;
}
}
if ( k > mm[l].size()) flag[i]=;
} }
for (i = ; i < m; i++)
{
if(flag[i]==) cout << "No" << endl;
else cout << "Yes" << endl;
}
system("pause");
return ;
}

PAT1090 危险品装箱 (25分) ——值得留意的map用法(int型与vector型的关联)的更多相关文章

  1. PAT乙级:1090危险品装箱(25分)

    PAT乙级:1090危险品装箱(25分) 题干 集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里.比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸. 本题给定一张不相容物品的清 ...

  2. PAT基础级-钻石段位样卷2-7-7 危险品装箱 (25 分)

    集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里.比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸. 本题给定一张不相容物品的清单,需要你检查每一张集装箱货品清单,判断它们是否 ...

  3. 1090 危险品装箱 (25分)C语言

    集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里.比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸. 本题给定一张不相容物品的清单,需要你检查每一张集装箱货品清单,判断它们是否 ...

  4. P1090 危险品装箱

    1090 危险品装箱 (25分)   集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里.比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸. 本题给定一张不相容物品的清单,需要你 ...

  5. PAT(B) 1090 危险品装箱(Java)

    题目链接:1090 危险品装箱 (25 point(s)) 题目描述 集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里.比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸. 本题 ...

  6. PAT-2019年冬季考试-甲级 7-2 Block Reversing (25分) (链表转置)

    7-2 Block Reversing (25分)   Given a singly linked list L. Let us consider every K nodes as a block ( ...

  7. 1032 Sharing (25分)

    1032 Sharing (25分) 题目 思路 定义map存储所有的<地址1,地址2> 第一set存放单词1的所有地址(通过查找map) 通过单词二的首地址,结合map,然后在set中查 ...

  8. 1122 Hamiltonian Cycle (25 分)

    1122 Hamiltonian Cycle (25 分) The "Hamilton cycle problem" is to find a simple cycle that ...

  9. A1016 Phone Bills (25)(25 分)

    A1016 Phone Bills (25)(25 分) A long-distance telephone company charges its customers by the followin ...

随机推荐

  1. 系统通配符号、系统正则符号,grep

    系统通配符号.系统正则符号,grep 1 系统通配符号 系统通配符号:借助通配符号 匹配文件名称信息 1.1 *: 匹配所有(任意)字符信息 找寻以old开头的文件 find /oldboy -typ ...

  2. [C#]基础——注意事项

    1. 静态类必须直接继承Object 2. 静态类不能实现接口,不能继承其他类(除了Object) 3.静态类中不能有实体方法 4.实体类中可以有静态方法,使用同 静态类 5.readonly属性可以 ...

  3. QML设计飘散效果

    1,目标及展示 首先希望实现文字.图片.控件等在触发后,呈现飘散并消失的效果.在QT例程<Qt Quick Particles Examples>是一个海星点击鼠标后呈现打散的效果,这个效 ...

  4. opencv-12-高斯滤波-双边滤波(附C++代码实现)

    开始之前 这几天由于自己的原因没有写, 一个是因为自己懒了, 一个是感觉这里遇到点问题不想往下写了, 我们先努力结束这个章节吧, 之前介绍了比较常用而且比较好理解的均值和中值滤波, 但是呢,在例程Sm ...

  5. 【Hadoop离线基础总结】日志采集框架Flume

    日志采集框架Flume Flume介绍 概述 Flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统.它可以采集文件,socket数据包.文件.文件夹.kafka等各种形式源数据,又可 ...

  6. css3盒子flex

    一.定义在容器上的属性有6个: 1.flex-direction: 决定主轴的方向,即项目的排列方向. 属性值:row.row-reverse.column.column-reverse: 2.fle ...

  7. javaEE ->DBUtils&连接池

    第1章    DBUtils 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例我们讲采用apache commons组件一个成员:DBUtils. DBUtils就是J ...

  8. python控制台实现打印带颜色的字体

    控制台颜色分类: 数值表示的参数含义: 显示方式: 0(默认值).1(高亮).22(非粗体).4(下划线).24(非下划线). 5(闪烁).25(非闪烁).7(反显).27(非反显)前景色: 30(黑 ...

  9. quartzJob

    定时任务的时间修改.暂停.立即执行 定时任务的修改.暂停主要是调用quartz内置方法pauseJob().resumeJob().triggerJob()等方法 //暂停一个job JobKey j ...

  10. MySQL数据库回表与索引

    目录 回表的概念 1.stu_info表案例 2.查看刚刚建立的表结构 3.插入测试数据 4.分析过程 5.执行计划 回表的概念 先得出结论,根据下面的实验.如果我要获得['liu','25']这条记 ...