题目描述

有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合。假设从A方向驶来的火车有n节(n<=1000),分别按照顺序编号为1,

2,3,…,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

代码

1.

#include<iostream>
#include<cstdio>
#include<cstring>
#include<stack>
using namespace std;
int main(){stack <int> q;int a,b[1000+5],j=1;scanf("%d",&a);for(int i=1;i<=a;i++){scanf("%d",&b[i]);}for(int i=1;i<=a;i++){q.push(i);while(q.empty()==0&&q.top()==b[j]){j++;q.pop();}       }if(q.empty()==1){printf("YES");}else{printf("NO");}return 0;
}

2.

#include<bits/stdc++.h>
using namespace std;
stack<int> a;
int n,order[1010],now;
int main()
{cin>>n;for(int i=1;i<=n;i++){cin>>order[i];}for(int i=1;i<=n;i++){while(now<=order[i]){a.push(now);now++;}if(a.top()==order[i]){a.pop();}else{cout<<"NO";return 0;}}cout<<"YES";return 0;
}

3.

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <stack>
#include <iostream>
using namespace std;
const int maxn = 1e3 + 5;
int n, a[maxn];
int maxm = 0;
int main(){stack<int> sta;cin >> n;for(int i = 1; i <= n; i++){cin >> a[i];if(a[i] > maxm){for(int j = maxm + 1; j < a[i]; j++)sta.push(j);maxm = a[i];}else if(a[i] <= maxm){if(sta.top() == a[i])sta.pop();else{cout << "NO";return 0;} }   }   cout << "YES";return 0;
}

4.

#include<bits/stdc++.h>
using namespace std;
stack<int>p;
int s[1001];
int main() {int n;scanf("%d", &n);int x;for (int i = 1; i <= n; i++) {scanf("%d", &s[i]);}for (int i = 1, flag = 1; i <= n; i++) {while (flag <= s[i]) {p.push(flag++);}if (p.top() == s[i]) p.pop();else {printf("NO\n");return 0;}}printf("YES\n");return 0;
}

最后,祝大家七夕快乐。

车厢调度(4种方法)相关推荐

  1. java定时调度main方法_java相关:Spring中实现定时调度的几种方法

    java相关:Spring中实现定时调度的几种方法 发布于 2020-11-28| 复制链接 本篇文章主要介绍了Spring中实现定时调度示例,可以在无人值守的时候系统可以在某一时刻执行某些特定的功能 ...

  2. linux 负数_linux内核提权系列教程(2):任意地址读写到提权的4种方法

    一.漏洞代码分析 代码见arbitrary.h. 1.功能函数介绍 功能 输入结构名 输入结构 功能 ARBITRARY_RW_INIT init_args size 初始化全局对象,存于g_mem_ ...

  3. java list 删除 遍历_Java list利用遍历进行删除操作3种方法解析

    Java list利用遍历进行删除操作3种方法解析 这篇文章主要介绍了Java list利用遍历进行删除操作3种方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需 ...

  4. 如何应对云爆发架构?四种方法替你解忧

    [TechTarget中国原创] 虽然大多数CIO喜欢混合云方案,但现实却悄悄遇到了点烦人的小问题--如受美国和欧盟的一些电信业务光纤连接投资不足所累.欢迎来到云爆发架构的地狱式网络体验. 缺乏公有云 ...

  5. 回答我,停止 Goroutine 有几种方法?

    大家好,我是煎鱼. 协程(goroutine)作为 Go 语言的扛把子,经常在各种 Go 工程项目中频繁露面,甚至有人会为了用 goroutine 而强行用他. 在 Go 工程师的面试中,也绕不开他, ...

  6. java多线程传值覆盖_Java 多线程传值的四种方法

    其实大家都知道多线程传值有三种方式: 1:通过构造方法传递数据 2:通过变量和方法传递数据 3:通过回调函数传递数据 那么博主有个非常变态的需求,所以找出了第四种实现方式,先看效果图: 动态Cron4 ...

  7. java se 定时任务_Java实现定时任务的三种方法

    一.Quartz的特点 按作业类的继承方式来分,主要有以下两种: 作业类继承org.springframework.scheduling.quartz.QuartzJobBean类的方式作业类不继承o ...

  8. WPF多线程UI更新——两种方法

    WPF多线程UI更新--两种方法 前言 在WPF中,在使用多线程在后台进行计算限制的异步操作的时候,如果在后台线程中对UI进行了修改,则会出现一个错误:(调用线程无法访问此对象,因为另一个线程拥有该对 ...

  9. 车厢调度(信息学奥赛一本通-T1357)

    [题目描述] 有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合.假设从A方向驶来的火车有n节(n≤1000),分别按照顺序编号为1,2,3,-,n.假定在进入车站 ...

最新文章

  1. pandas dataframe 字符映射为数字
  2. ACM入门之【前缀和】
  3. BZOJ-3190-赛车-JLOI2013-暴力枚举
  4. C#关于事件的几个好例子
  5. c++命令模式command
  6. javascript中==和===的区别
  7. mysql树形结构查询_MySQL递归查询所有子节点,树形结构查询
  8. 一个架构的演化2--用ESB集成
  9. 华为Mate 40系列外观偷跑:后置八卦图六摄亮了!
  10. mysql 1054 42s22_MySQL 触发器的坑:ERROR 1054 (42S22): Unknown column 'xxx' in 'field list'
  11. 因果推断中期学习小结
  12. mysql中编写匿名块_CAD软件中的匿名块怎么创建/编辑?有什么作用?
  13. linux系统 安卓系统安装教程,在Linux系统上安装Android 4.4图文教程
  14. Ceph分布式存储详解
  15. 接入微信提现Api(企业付款到零钱--向微信用户个人付款)
  16. 数据库及SQL语句入门教程
  17. 深度学习入门笔记之DenseNet网络
  18. 【FPGA学习笔记】Verilog语言的模块化设计
  19. linux composer root,Composer在Windows和Linux的安装和使用
  20. Bug管理的经验和实践

热门文章

  1. 使用一维数组输出最小值及其最大下标
  2. 大学物理---统计物理(热学部分)
  3. 北大施柏鑫:从审稿人视角,谈谈怎么写一篇CVPR论文
  4. 《动手学深度学习(Dive into Deeplearning)》(第二版)——第二章 _2.3 线性代数
  5. 分类器的ROC曲线及相关指标(ROC、AUC、ACC)详解
  6. 话不多说 - 买点儿卖点儿(20220110)
  7. CSRF 伪造跨域请求
  8. mysql 中文名不能同步_关于恢复MySQL主主数据的同步问题
  9. PHP源码的加密方法分享
  10. Curl多线程|CurlMulti