L2-032 彩虹瓶 (25 分)

彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。

假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N)。现在工厂里有每种颜色的小球各一箱,工人需要一箱一箱地将小球从工厂里搬到装填场地。如果搬来的这箱小球正好是可以装填的颜色,就直接拆箱装填;如果不是,就把箱子先码放在一个临时货架上,码放的方法就是一箱一箱堆上去。当一种颜色装填完以后,先看看货架顶端的一箱是不是下一个要装填的颜色,如果是就取下来装填,否则去工厂里再搬一箱过来。

如果工厂里发货的顺序比较好,工人就可以顺利地完成装填。例如要按顺序装填 7 种颜色,工厂按照 7、6、1、3、2、5、4 这个顺序发货,则工人先拿到 7、6 两种不能装填的颜色,将其按照 7 在下、6 在上的顺序堆在货架上;拿到 1 时可以直接装填;拿到 3 时又得临时码放在 6 号颜色箱上;拿到 2 时可以直接装填;随后从货架顶取下 3 进行装填;然后拿到 5,临时码放到 6 上面;最后取了 4 号颜色直接装填;剩下的工作就是顺序从货架上取下 5、6、7 依次装填。

但如果工厂按照 3、1、5、4、2、6、7 这个顺序发货,工人就必须要愤怒地折腾货架了,因为装填完 2 号颜色以后,不把货架上的多个箱子搬下来就拿不到 3 号箱,就不可能顺利完成任务。

另外,货架的容量有限,如果要堆积的货物超过容量,工人也没办法顺利完成任务。例如工厂按照 7、6、5、4、3、2、1 这个顺序发货,如果货架够高,能码放 6 只箱子,那还是可以顺利完工的;但如果货架只能码放 5 只箱子,工人就又要愤怒了……

本题就请你判断一下,工厂的发货顺序能否让工人顺利完成任务。

输入格式:

输入首先在第一行给出 3 个正整数,分别是彩虹瓶的颜色数量 N(1)、临时货架的容量 M(<)、以及需要判断的发货顺序的数量 K。

随后 K 行,每行给出 N 个数字,是 1 到N 的一个排列,对应工厂的发货顺序。

一行中的数字都以空格分隔。

输出格式:

对每个发货顺序,如果工人可以愉快完工,就在一行中输出 YES;否则输出 NO

输入样例:

7 5 3
7 6 1 3 2 5 4
3 1 5 4 2 6 7
7 6 5 4 3 2 1

输出样例:

YES
NO
NO
 1 #include <iostream>
 2 #include <stack>
 3 using namespace std;
 4 stack<int> sta;
 5 int main(){
 6     int n,m,k,t,cnt;
 7     cin>>n>>m>>k;
 8     while(k--){
 9         int f=1,flag=1,cnt=0;
10         for(int i=1;i<=n;i++){
11             cin>>t;
12             sta.push(t);
13             cnt++;
14             while(!sta.empty()&&sta.top()==f){//若栈顶元素正确,循环
15                 f++;
16                 sta.pop();
17                 cnt--;
18             }
19             if(cnt>m) flag=0;//栈溢出
20         }
21         if(sta.empty()&&flag) cout<<"YES";//栈为空且栈没有溢出过
22         else cout<<"NO";
23         if(k>0) cout<<'\n';//格式控制
24         while(!sta.empty())
25             sta.pop();
26     }
27     return 0;
28 }

转载于:https://www.cnblogs.com/coodyz/p/10630434.html

pta-L2-032 彩虹瓶 (25 分)相关推荐

  1. 天梯赛 L2-032 彩虹瓶 (25 分)

    L2-032 彩虹瓶 (25 分) 思路: 读完题目就知道是用栈处理, 值得注意的是 1 while (s.size() && s.top() == d)中,要先判断栈的大小,再判断栈 ...

  2. 一起开心2020蓝桥寒假训练(二)7-6 彩虹瓶 (25分)用到栈,队列

    一起开心2020蓝桥寒假训练(二)7-6 彩虹瓶 (25分) 彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里. 假设彩虹瓶里要按 ...

  3. L2-032 彩虹瓶 (25分)(C语言)

    L2-032 彩虹瓶 (25分) 彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里. 假设彩虹瓶里要按顺序装 N 种颜色的小球(不 ...

  4. PTA(2019年天梯赛-全国总决赛)----彩虹瓶 (25分)

    旧人旧事更值得怀念,或悲或喜每个人身上都承载着某一段时光,但是我会永远清澈永远疯狂永远浪漫.没有人能回到过去重新活过,但你我都可以从现在开始,决定我们未来的模样.                    ...

  5. PTA 彩虹瓶 (25分)

    问题描述: 彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里. 假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 ...

  6. 团体程序设计天梯赛-练习集——7-10 彩虹瓶 (25分)

    彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里. 假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N).现 ...

  7. L2-4 彩虹瓶 (25 分)-2019天梯赛全国总决赛

    彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里. 假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N).现 ...

  8. 【栈】L2-032 彩虹瓶 (25分)

    假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N).现在工厂里有每种颜色的小球各一箱,工人需要一箱一箱地将小球从工厂里搬到装填场地.如果搬来的这箱小球正好是可以装填的颜色,就直 ...

  9. 彩虹瓶 (25 分)

    彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里. 假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N).现 ...

  10. L2-4 彩虹瓶 (25分) 栈的运用

     代码虽然写的有点乱,但是还是过了哈哈. 主要就是模拟题目那个意思,仔细点就好了. #include <iostream> #include <malloc.h> #inclu ...

最新文章

  1. C# 视频监控系列(9):服务器端——数据捕获(抓图 + 录像)
  2. docker高级应用之赋予容器独立外网ip
  3. tempfile PermissionError: [Errno 13] Permission denied
  4. 7.Mybatis关联表查询(这里主要讲的是一对一和一对多的关联查询)
  5. int 转interger java_Java中Integer和int之间的转换
  6. java如何生成验证码
  7. 数据库(表)导入导出备份
  8. [bzoj1355][Baltic2009]Radio Transmission_KMP
  9. Java中的Map List Set等集合类
  10. 获取android型号代码,Android应用开发之Android获取手机品牌、手机型号、手机唯一序列号的代码教程...
  11. 无限级下拉菜单(树形菜单,二级菜单)
  12. HTML5CSS3网页设计仿微信通讯录页
  13. gitlab: [remote rejected] pre-receive hook declined
  14. qq音乐网页版下载歌曲
  15. KL Divergence ——衡量两个概率分布之间的差异
  16. excel 表头合并 和拆分的例子
  17. UL588圣诞灯串测试标准和相关法规
  18. 【​观察】重新定义销售 销售推的底气与微盟的梦想
  19. 简单部署 rancher 管理kubernetes集群(3)
  20. 雨林木风 Ghost Vista SP1 电脑公司装机版 V1.0

热门文章

  1. python生成统计图_用python Linux(无GUI)中生成统计图
  2. 熊孩子乱敲键盘攻破linux桌面,“熊孩子”乱敲键盘攻破了Linux桌面,怎么做到的?...
  3. 优雅代码的秘密,都藏在这6个设计原则中
  4. SOPC设计02——硬件系统开发流程
  5. java优化代码常见套路
  6. 站长百科访谈第59期:张清分享网站优化技巧
  7. photoshop抠图后如何使边缘模糊圆滑
  8. poj 3728 The merchant// lca(倍增实现) + dp || tarjan+并查集路径上dp
  9. 【Ubuntu】postman安装、创建桌面快捷方式
  10. 机械革命计算机配置,单品:机械革命X6Ti-S_机械革命笔记本电脑_笔记本评测-中关村在线...