Rail_UVa514_栈
/*
https://vjudge.net/problem/UVA-514
*/
#include "pch.h"
#include<iostream>
#include<cstdio>
#include<stack>
using namespace std;
const int MAXN = + ;
int n, target[MAXN]; int main()
{ while (scanf("%d", &n) == ) // 输入,一共n辆火车
{
int isOnePart = ; // 是否是同一次测试
if (n == ) // 程序应当结束
break;
while (isOnePart) // 是同一次测试时
{
stack<int> s;
int A = , B = ; // A:进C站顺序 1,2,3,...,n B:数组target的下标
for (int i = ; i <= n; i++)
{
scanf("%d", &target[i]); // 输入出C站顺序
if (target[i] == )
{
isOnePart = ;
printf("\n"); // 注意!
break;
}
}
if (isOnePart == ) // 退出此次测试,进入另一部分的测试
break;
int ok = ; // 标志,是否可以按顺序出站
while (B <= n) // 判断当前出C站的车辆数是否达到总数
{
if (A == target[B]) // 要进站的火车与要出站的火车为同一辆,则进站后直接出站
{
A++; B++;
}
else if (!s.empty() && s.top() == target[B]) // 栈(站)非空,栈顶与要出站的火车相同,则出站
{
s.pop();
B++; // 要出站的++
}
else if (A <= n) // 要进站的与出站的不同,只进站,先等着,当栈顶与目标相同时再出(上一个if)
{
s.push(A++);
}
else
{
ok = ; //正常结束循环为b=n, 若前几种情况都不符合,则不能按照要求顺序出站,break
break;
}
}
printf("%s\n", ok ? "Yes" : "No");
} }
return ;
}
Rail_UVa514_栈的更多相关文章
- 通往全栈工程师的捷径 —— react
腾讯Bugly特约作者: 左明 首先,我们来看看 React 在世界范围的热度趋势,下图是关键词“房价”和 “React” 在 Google Trends 上的搜索量对比,蓝色的是 React,红色的 ...
- Java 堆内存与栈内存异同(Java Heap Memory vs Stack Memory Difference)
--reference Java Heap Memory vs Stack Memory Difference 在数据结构中,堆和栈可以说是两种最基础的数据结构,而Java中的栈内存空间和堆内存空间有 ...
- duang~免费的学习视频来啦:学霸君之全栈测试
学霸君向童鞋们推荐一款 同名学霸学习 视频教程 重点是完全免费收看学习噢!!! 今天 学霸君推荐腾讯课堂的学霸君之全栈测试 复制下方链接至腾讯课堂中报名学习 https://ke.qq.com/cou ...
- [数据结构]——链表(list)、队列(queue)和栈(stack)
在前面几篇博文中曾经提到链表(list).队列(queue)和(stack),为了更加系统化,这里统一介绍着三种数据结构及相应实现. 1)链表 首先回想一下基本的数据类型,当需要存储多个相同类型的数据 ...
- BZOJ1012: [JSOI2008]最大数maxnumber [线段树 | 单调栈+二分]
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 8748 Solved: 3835[Submi ...
- BZOJ 4453: cys就是要拿英魂![后缀数组 ST表 单调栈类似物]
4453: cys就是要拿英魂! Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 90 Solved: 46[Submit][Status][Discu ...
- BZOJ 3238: [Ahoi2013]差异 [后缀数组 单调栈]
3238: [Ahoi2013]差异 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 2326 Solved: 1054[Submit][Status ...
- .NET全栈开发工程师学习路径
PS:最近一直反复地看博客园以前发布的一条.NET全栈开发工程师的招聘启事,觉得这是我看过最有创意也最朴实的一个招聘启事,更为重要的是它更像是一个技术提纲,能够指引我们的学习和提升,现在转载过来与各位 ...
- Nodejs之MEAN栈开发(八)---- 用户认证与会话管理详解
用户认证与会话管理基本上是每个网站必备的一个功能.在Asp.net下做的比较多,大体的思路都是先根据用户提供的用户名和密码到数据库找到用户信息,然后校验,校验成功之后记住用户的姓名和相关信息,这个信息 ...
随机推荐
- jsp的九大内置对象及作用
内置对象名 类型 request HttpServletRequest ...
- Kubernetes之Controllers一
ReplicaSet is the next-generation Replication Controller. The only difference between a ReplicaSet a ...
- jd面试之感
一面问题:问题都回答的很好,顺利进入二面 1.单点登录的改造和原理 2.hashmap 3.jvm:堆.方法区.栈,本地方法栈,gc,gc的方式 4.spring的ioc.aop的实现方式cglib和 ...
- Jenkins-pipeline
https://my.oschina.net/ghm7753/blog/371954?p=1
- Hexo搭建(VPS)
都说 hexo 是静态的 Blog,当时不明觉厉= =.后来终于知道了什么意思......所谓的静态,其实就是因为你不能改云端,而是依赖本地数据,然后使用命令将本地数据变成 web 数据再使用浏览器进 ...
- 【译】第43节---EF6-自定义约定
原文:http://www.entityframeworktutorial.net/entityframework6/custom-conventions-codefirst.aspx Code-Fi ...
- Shell 脚本批量创建数据库表
使用 Shell 脚本批量创建数据表 系统:Centos6.5 64位 MySQL版本:5.1.73 比如下面这个脚本: #!/bin/bash #批量新建数据表 for y in {0..199}; ...
- 创建 JavaScript 类和对象 prototype
创建 JavaScript 对象 通过 JavaScript,您能够定义并创建自己的对象. 创建新对象有两种不同的方法: 定义并创建对象的实例(直接创建方式) person=new Object(); ...
- [原][源码][tinyxml][opencv]按照规格剪切所有的图片
源码: #include <iostream> #include <fstream> #include <opencv2/core/core.hpp> #inclu ...
- es6 - 函数 扩展
1. 可添加默认参数 function fn(name,age=17){ console.log(name+","+age); } fn("Amy",18); ...