stack-铁轨问题
每辆火车都从A方向驶入车站,再从B方向驶出车站,同时它的车厢可以进行某种形式的重新组合。假设从A方向驶来的火车有n节车厢(n<1000),分别按顺序编号为1,2,...,n。假定在进入车站之前每节车厢之间都是不连着的,并且它们可以自行移动,直到处在B方向的铁轨上。另外假定车站C里可以停放任意多节的车厢。但是一旦当一节车厢进入车站C,它就不能再回到A方向的铁轨上了,并且一旦当它进入B方向的铁轨后,它就不能再回到车站C。负责车厢调度的工作人员需要知道能否使它以a1,a2,...,an的顺序从B方向驶出。 请写一个程序,用来判断能否得到指定的车厢顺序。
【输入格式】
输入由两行组成:
第一行有n(n<1000),表示有n节车厢。
第二行n个数表示一组需判定的车厢。
【输出格式】
对于每个输入输出有一行,每行根据判断,如果能正常驶出输出"YES",否则输出"NO"。
【输入输出样例】
5
5 4 3 2 1
Yes
5
5 4 1 2 3
No
6
6 5 4 3 2 1
Yes
#include<cstdio>
#include<stack>
using namespace std; const int maxn = + ;
int n, target[maxn]; int main()
{
while(scanf("%d", &n)==)
{
stack<int> s;
int A = , B = ;
for(int i = ; i <= n; i++)
scanf("%d", &target[i]);
int ok = ;
while(B <= n) //B表示出栈的车的数量
{
if(A==target[B]) //A表示出栈数量加上入栈车辆和
{
A++; B++;
}
else if(!s.empty()&&s.top()==target[B])
{
s.pop(); B++;
}
else if(A<=n) s.push(A++);
else
{
ok = ; break;
}
}
printf("%s\n", ok ? "Yes" : "No");
}
return ;
}
stack-铁轨问题的更多相关文章
- 【UVa-514】铁轨——栈的学习
UVa514 Rails(铁轨) 题目:铁轨 题目链接: UVa514链接 题目描述: 某城市有一个火车站,有n节车厢从A方向驶入车站,按进站的顺序编号为1-n.你的任务是判断是否能让它们按照某种特定 ...
- COJ 0015 20602铁轨
传送门:http://oj.cnuschool.org.cn/oj/home/problem.htm?problemID=15 20602铁轨 难度级别:B: 运行时间限制:1000ms: 运行空间限 ...
- 铁轨(rails, ACM/ICPC CERC 1997,Uva 514)
铁轨(rails, ACM/ICPC CERC 1997,Uva 514) 题目描述 某城市有一个火车站,铁轨铺设如图所示.有n节车厢从A方向驶入车站,按进站顺序编号为1~n.你的任务是让它们按照某种 ...
- UVA 514 - Rails ( 铁轨)
from my CSDN: https://blog.csdn.net/su_cicada/article/details/86939523 例题6-2 铁轨(Rails, ACM/ICPC CERC ...
- 紫书140例题6-2 铁轨&&UVa514
某城市有一个火车站,铁轨铺设如图6-1所示.有n节车厢从A方向驶入车站,按进站顺序编号为1~n.你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨,并驶出车站.例如,出栈顺序(5 4 1 2 ...
- 线性数据结构之栈——Stack
Linear data structures linear structures can be thought of as having two ends, whose items are order ...
- Java 堆内存与栈内存异同(Java Heap Memory vs Stack Memory Difference)
--reference Java Heap Memory vs Stack Memory Difference 在数据结构中,堆和栈可以说是两种最基础的数据结构,而Java中的栈内存空间和堆内存空间有 ...
- [数据结构]——链表(list)、队列(queue)和栈(stack)
在前面几篇博文中曾经提到链表(list).队列(queue)和(stack),为了更加系统化,这里统一介绍着三种数据结构及相应实现. 1)链表 首先回想一下基本的数据类型,当需要存储多个相同类型的数据 ...
- Stack Overflow 排错翻译 - Closing AlertDialog.Builder in Android -Android环境中关闭AlertDialog.Builder
Stack Overflow 排错翻译 - Closing AlertDialog.Builder in Android -Android环境中关闭AlertDialog.Builder 转自:ht ...
- Uncaught RangeError: Maximum call stack size exceeded 调试日记
异常处理汇总-前端系列 http://www.cnblogs.com/dunitian/p/4523015.html 开发道路上不是解决问题最重要,而是解决问题的过程,这个过程我们称之为~~~调试 记 ...
随机推荐
- zabbix api创建screen vsize限制解决
通过脚本调用zabbix api 生成screen报错: "vsize": must be between "1" and "100" 查看 ...
- Linux下性能分析工具汇总
来自:http://os.51cto.com/art/201104/253114.htm 本文讲述的是:CPU性能分析工具.Memory性能分析工具.I/O性能分析工具.Network性能分析工具. ...
- 关于工作与生活——HP大中华区总裁孙振耀撰文谈退休并畅谈人生
转自:http://blog.csdn.net/adaptiver/article/details/7494121 我有个有趣的观察,外企公司多的是25-35岁的白领, 40岁以上的员工很少,二三十岁 ...
- k8s部署nginx集群
环境: 两台虚拟机, 10.10.20.203 部署docker.etcd.flannel.kube-apiserver.kube-controller-manager.kube-scheduler ...
- git学习之简介(一)
一.前言 史上最浅显易懂的Git教程! 为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得 ...
- X264学习1:简介
H.264是视频编码标准. X264是它的开源实现,是视频编码器. 目录 [隐藏] 1 编码器特性 2 输入输出文件类型 2.1 输入 2.2 输出 3 preset和tune系统 3.1 --pr ...
- 【文献阅读】Self-Normalizing Neural Networks
Self-Normalizing Neural Networks ,长达93页的附录足以成为吸睛的地方(给人感觉很厉害), 此paper提出了新的激活函数,称之为 SELUs ,其具有normaliz ...
- ztreeSearch
$.fn.extend({ ztreeSearch : function(options) { // var _self=$(this); var defaults = { id : '', sear ...
- Linux下tar解压缩命令
1.打包命令: 命令格式:tar -zcvf 压缩文件名.tar.gz 被压缩文件名 可先切换到当前目录下.压缩文件名和被压缩文件名都可加入路径. 2.解包命令: 命令格式:tar -zx ...
- WPF 自定义快捷键命令(COMMAND)(转)
命令简介 WPF 中的命令是通过实现 ICommand 接口创建的.ICommand 公开两个方法(Execute 及 CanExecute)和一个事件(CanExecuteChanged).Exec ...