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

假设彩虹瓶里要按顺序装 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<N≤10的​3次​​ )、临时货架的容量 M(<N)、以及需要判断的发货顺序的数量 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

笔记:

刚开始我以为只要最终货架的货物不超过货架的容量就可以一直排序知道结束(被自己的智商所折服),所以一直没有明白第二组为什么不成立,货架的货物不是没有超过货架的容量吗。
后面才明白,当货架的货物达到货架的容量时,如果顺序还是没排好的话就无法继续工作排序相当于终止。不认真看题目外加没带脑子的后果就是错哪都不知道。

思路:

添加一个栈(stack)用来存放堆积的货物,按顺序输入发货顺序。如果不满足,就放到stack里并且判断是否超过货架容量;如果满足的话,就循环栈,看看top()是否满足,满足就继续否则退出循环。最后在判断货物是否完成排序。

正确代码:

#include<iostream>
#include<stdio.h>
#include<stack>
using namespace std;
int main(){int n,m,k;while(cin>>n>>m>>k){while(k--){int a;stack<int>sk;int f=0;int c=1;//ans=0;for(int i=0;i<n;i++){cin>>a;if(a==c){c++;while(!sk.empty()){if(sk.top()==c){c++;sk.pop();}else{break;}}}else{sk.push(a);if(sk.size()>m) f=1;}//cout<<sk.size()<<endl;}if(f==1||c<n){cout<<"NO"<<endl;}else{cout<<"YES"<<endl;}}}return 0;
}

团体程序设计天梯赛-练习集——7-10 彩虹瓶 (25分)相关推荐

  1. PAT——团体程序设计天梯赛-练习集(10分题集)Python 3

    这个博客里面全部都是10分题的合集 活着就是为了改变世界,难道还有其他原因吗?-- 乔布斯 L1-008 求整数段和 (10分) 给定两个整数A和B,输出从A到B的所有整数以及这些数的和. 输入格式: ...

  2. 团体程序设计天梯赛-练习集(10分)

    十分题 L1-007 念数字 (10 分) 答案(代码): L1-008 求整数段和 (10 分) 答案(代码): L1-010 比较大小 (10 分) 答案(代码): L1-013 计算阶乘和 (1 ...

  3. 团体程序设计天梯赛-练习集L1-025 正整数A+B (15分)(getline输入)

    题目: 题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000].稍微有点麻烦的是,输入并不保证是两个正整数. 输入格式: 输入在一行给出A和B,其间以空格分开.问题是A和B不一 ...

  4. 团体程序设计天梯赛-练习集 1-2 打台球(5 分)

    1-2 打台球 (5 分) 杨同学迷上了一款叫诺斯克的台球游戏,而且随着练习的深入,他总是能在某些神奇的时刻开启外挂模式,此时小李将指哪打哪,直至无球可打.现在杨同学想让你帮他计算下当他开启外挂模式的 ...

  5. 团体程序设计天梯赛-练习集L1-058 6翻了 (15 分)

    文章目录 前言 一.C语言解答 二.Python解答 总结 前言 "666"是一种网络用语,大概是表示某人很厉害.我们很佩服的意思.最近又衍生出另一个数字"9" ...

  6. 团体程序设计天梯赛-练习集 L1-059 敲笨钟 (20分)

    L1-059 敲笨钟 (20分) 微博上有个自称"大笨钟V"的家伙,每天敲钟催促码农们爱惜身体早点睡觉.为了增加敲钟的趣味性,还会糟改几句古诗词.其糟改的方法为:去网上搜寻压&qu ...

  7. 关于团体程序设计天梯赛-练习集 L1-009 N个数求和 (20 分) 以及测试点三过不了的一些想法

    本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100).随后一行按格式a1/b1 ...

  8. 【CCCC】PAT : 团体程序设计天梯赛-练习集 L3 答案(01-23)

    [CCCC]PAT : 团体程序设计天梯赛-练习集 L3 答案 顶着满课,整整一星期,终于咕完了.(:´д`)ゞ 知识点分类(23): 1.搜索模拟(5):BFS,DFS,最短路,路径打印 2.计算几 ...

  9. 【CCCC】PAT : 团体程序设计天梯赛-练习集 L2 答案,题解,附代码

    [CCCC]PAT : 团体程序设计天梯赛-练习集 L2 答案 鉴定完毕,全部水题 ヾ(•ω•`)o 知识点分类(32): 1.树锯结构(9):二叉树的存储,编号,遍历顺序转换,求深度,底层节点,从底 ...

  10. PTA团体程序设计天梯赛-练习集(3)

    PTA团体程序设计天梯赛-练习集 L1-001 Hello World (5 分) 这道超级简单的题目没有任何输入. 你只需要在一行中输出著名短句"Hello World!"就可以 ...

最新文章

  1. 按下开机键,计算机背后的故事
  2. cmd指令大全指令_Linux 超全实用指令大全 | CSDN 博文精选
  3. 《Adobe Photoshop CS5中文版经典教程(全彩版)》—第1课1.2节使用工具
  4. Python中矩阵SVD分解及还原
  5. 一文弄懂各大池化Pooling操作
  6. Django+Vue前后端分离项目的部署
  7. python中getopt函数_python getopt模块使用方法
  8. python程序gpu运行时间表_python gpu任务及时调度
  9. 《高数叔》概率论与数理统计期末总复习笔记(持续更新中)
  10. Swift - URL转码解码
  11. 京东简单介绍(互联网知识)
  12. android客户端设计,图文详解Android客户端界面设计教程
  13. linux系统下 usb网卡的驱动安装
  14. 判定平方数(Python)
  15. 奥塔哥大学计算机科学怎样,奥塔哥大学自然科学学院挂科率高吗?
  16. Segment Anything万物皆可分割
  17. 美化彩虹秒赞系统内页模版
  18. Xilinx ZYNQ开发板资料共享
  19. 字符串切片反转字符串_如何反转字符串
  20. Organization Chart

热门文章

  1. 西安80转2000坐标参数_!!!西安80坐标与地方坐标系的转换方法技巧
  2. 单片机c语言程序编写步骤,用c语言编写单片机流水灯程序详解
  3. 读里尔克的后感 文/奥斯·科特林
  4. 宝塔Linux面板安装教程(+Mysql)
  5. Windows10 Emacs-SML开发环境搭建
  6. (转)iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)
  7. 配置基于IPv6的单节点Ceph
  8. 如何用Python画一只肥肥的柯基狗狗——turtle库绘制椭圆与弧线实践
  9. 2021最全大数据学习路线(建议收藏)
  10. 佛山 新型智慧城市建设实打实