SSL 2311-车厢调度[栈]
Description
在PushPop城中有一个著名的火车站,车站铁路如图所示。
每辆火车都从A方向驶入车站,再从B方向驶出车站,同时它的车厢可以进行某种形式的重新组合。假设从A方向驶来的火车有N节车厢(N≤1000),分别按顺序编号为1,2,…,N。负责车厢调度的工作人员需要知道能否使它以A1,A2,…,An的顺序从B方向驶出。
请你编写程序,用来判断能否得到指定的车厢顺序。假定在进入车站之前每节车厢之间都是不连着的,并且它们可以自行移动,直到处在B方向的铁轨上。另外假定车站可以停放任意多的车厢。但是一旦车厢进入车站,它就不能再回到A方向的铁轨上了,并且一旦它驶入B方向的铁轨后,它就不能再回到车站。
Input
第1行输入N,接下来的一行是任意多个的出站重组顺序(A1,A2,…,),以0为结束标志,用空格分隔。
Output
输出Yes表示可以把火车(1,2,…,N)火车编排成所需要的顺序(A1,A2,…,),否则用NO表示。
Sample Input
5
5 4 3 2 1
Sample Output
YES
.
.
.
.
.
分析
在中转站C中,车厢符合后进先出的原则,因此是一个栈。
假设我们已经处理了前i-1节从B方向驶出的车厢,我们现在要让aiai驶出。
若aiai不在车站C中,我们就让若干车厢从A方向驶入车站C,直到aiai驶入,再将它从B方向驶出;
若aiai在车站C中,如果它是车站C中停在最前面的,则将它从B方向驶出,否则原问题误解。
.
.
.
.
.
程序:
#include<iostream>
using namespace std;
int main()
{int n,stack[2000],a[2000];cin>>n;for (int i=1;i<=n;i++)cin>>a[i];int top=0,bh=1;for (int i=1;i<=n;i++){while (bh<=a[i]){stack[++top]=bh;bh++;}if (stack[top]==a[i]) top--;else{cout<<"NO";return 0;}}cout<<"YES";return 0;
}
转载于:https://www.cnblogs.com/YYC-0304/p/9499901.html
SSL 2311-车厢调度[栈]相关推荐
- 车厢调度(判断是否为合法的出栈序列)
时间限制: 1 Sec 内存限制: 128 MB [提交] [状态] 题目描述 有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合.假设从A方向驶来的火车有n节(n ...
- 7-5 列车厢调度 (25 分)
7-5 列车厢调度 (25 分) 1 ====== <--移动方向/ 3 ===== \2 ====== -->移动方向 大家或许在某些数据结构教材上见到过"列车厢调度问题&qu ...
- 车厢调度(信息学奥赛一本通-T1357)
[题目描述] 有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合.假设从A方向驶来的火车有n节(n≤1000),分别按照顺序编号为1,2,3,-,n.假定在进入车站 ...
- 车厢调度(train.cpp) 问题描述 有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合。假设从A方向驶来的火车有n节
车厢调度(train.cpp) [问题描述] 有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合.假设从A方向驶来的火车有n节(n<=1000),分别按照顺序 ...
- 车厢调度(4种方法)
题目描述 有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合.假设从A方向驶来的火车有n节(n<=1000),分别按照顺序编号为1, 2,3,-,n.假定在进 ...
- pta 习题集5-19 列车厢调度
1 ====== <--移动方向/3 ===== \2 ====== -->移动方向 大家或许在某些数据结构教材上见到过"列车厢调度问题"(当然没见过也不要紧).今天, ...
- 列车厢调度(C语言)
题目如下: 1 ====== <–移动方向 / 3 ===== \ 2 ====== -->移动方向 有三条平行的列车轨道(1.2.3)以及1-3和2-3两段连接轨道.现有一列车厢停在1号 ...
- 7-9 列车厢调度 (25 分)
1 ====== <--移动方向/3 ===== \2 ====== -->移动方向 大家或许在某些数据结构教材上见到过"列车厢调度问题"(当然没见过也不要紧).今天, ...
- 7-12 列车厢调度(25 分)
1 ====== <--移动方向 / 3 ===== \ 2 ====== -->移动方向 大家或许 ...
最新文章
- 2016第18本:世界上最简单的会计书
- psd页面切割成html技巧总结
- spring mvc4 笔记
- Jersey框架三:Jersey对HTTPS的支持
- 如何在Java中转义JSON字符串-Eclipse IDE技巧
- mongodb报错 An error occurred while loading navigation: topology was destroyed
- java漂亮界面编程_计算机二级之JAVA篇
- 修改itunes备份路径的方法(奇奇怪怪的文件堆积C盘,别让文件成为最后的稻草哦)
- c语言 字体点阵取模,[汉字取模软件怎么用]单片机点阵汉字显示需要用
- mysql添加序列触发器_在Oracle中创建自增序列之触发器
- mysql数据库调试_mysql数据库调试
- Arturia Pigments Mac:模拟振荡器和波表振荡器的结合
- 推送数据分析全新升级,优化方向一目了然
- python写一个ssh工具_用Python和JS实现的Web SSH工具,真香!
- 暴力破解西电校园网密码
- 我的第一本社会心理学(part3)--自我概念
- 感恩母亲节主题活动照片作品征集小程序
- 龙腾世纪审判一直连接服务器,【1.7.2】【rpg】我的世界龙腾世纪群组服务器
- alk In Web Security(安全世界观): Devleping a Secure Wesite
- 怎么通过Unity和谷歌纸盒做一个VR游戏?(译)