1357:车厢调度 (栈)

【题目链接】

    http://ybt.ssoier.cn:8088/problem_show.php?pid=1357

【算法】

    栈模拟调度操作,一个指针指向入栈队列,如果出栈的编号大于指针指向的则指针后移并且车厢入栈,若小于且在栈头则出栈,反之序列不可行。

【代码】

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int n,i,puz;
 4 int a[1010],b[1010],tot,p=1;
 5 int main()
 6 {
 7     scanf("%d",&n);
 8     for(i=1;i<=n;i++) a[i]=i;
 9     for(i=1;i<=n;i++) {
10         scanf("%d",&puz);
11         if(puz>=a[p]&&p<=n) {
12             while(puz>=a[p]&&p<=n) b[++tot]=a[p++];
13             tot--;
14         }else {
15             if(b[tot]==puz) tot--;
16             else {
17                 puts("NO");
18                 return 0;
19             }
20         }
21     }
22     puts("YES");
23     return 0;
24 }

原文地址:https://www.cnblogs.com/Willendless/p/9403330.html

时间: 2024-10-05 22:21:31

1357:车厢调度 (栈)的相关文章

车厢调度(栈的经典入门题)

车厢调度 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 5   Accepted Submission(s) : 2 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 有一个火车站,每辆火车从A驶入,车厢可以停放在车站C中,或从B方向驶

栈的合理出栈顺序(列车厢调度)

列车厢调度 一道较为明显的栈的可能出栈顺序的变式题,2是栈,3是出栈序列,很水一道变式应用 1 ====== <--移动方向 / 3 ===== 2 ====== -->移动方向 大家或许在某些数据结构教材上见到过"列车厢调度问题"(当然没见过也不要紧).今天,我们就来实际操作一下列车厢的调度.对照上方的ASCII字符图,问题描述如下: 有三条平行的列车轨道(1.2.3)以及1-3和2-3两段连接轨道.现有一列车厢停在1号轨道上,请利用两条连接轨道以及3号轨道,将车厢按照要

车厢调度

(train.cpp/c/pas) Description 有 一 个 火 车 站 , 铁 路 如 图 所 示 ,每辆火车从 A 驶入, 再从 B 方向驶出,同时它的车厢可以重新组合.假设 从 A 方向驶来的火车有 n 节(n<=1000) ,分别按照顺 序编号为 1,2,3,…,n.假定在进入车站前,每节 车厢之间都不是连着的,并且它们可以自行移动到 B 处的铁轨上. 另外假定车站 C 可以停放任意多节车厢. 但是一旦进入车站 C,它就不能再回到 A 方向的铁轨 上了,并且一旦当它进入 B 方

GRYZ 模 拟 赛 系 列 Xxy 的车厢调度

Xxy 的车厢调度(train.cpp/c/pas)Description有 一 个 火 车 站 , 铁 路 如 图 所 示 ,每辆火车从 A 驶入,再从 B 方向驶出,同时它的车厢可以重新组合.假设从 A 方向驶来的火车有 n 节(n<=1000) ,分别按照顺序编号为 1,2,3,…,n.假定在进入车站前,每节车厢之间都不是连着的,并且它们可以自行移动到 B处的铁轨上. 另外假定车站 C 可以停放任意多节车厢.但是一旦进入车站 C,它就不能再回到 A 方向的铁轨上了,并且一旦当它进入 B 方

(考试大整理~)Xxy 的车厢调度x

这一题我以前研究过哈哈哈~ (train.cpp/c/pas) Description 有 一 个 火 车 站 , 铁 路 如 图 所 示 ,每辆火车从 A 驶入, 再从 B 方向驶出,同时它的车厢可以重新组合.假设 从 A 方向驶来的火车有 n 节(n<=1000) ,分别按照顺 序编号为 1,2,3,-,n.假定在进入车站前,每节 车厢之间都不是连着的,并且它们可以自行移动到 B 处的铁轨上. 另外假定车站 C 可以停放任意多节车厢. 但是一旦进入车站 C,它就不能再回到 A 方向的铁轨 上

车厢调度(train.cpp)

车厢调度(train.cpp) [问题描述]        有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合.假设从A方向驶来的火车有n节(n<=1000),分别按照顺序编号为1,2,3,…,n.假定在进入车站前,每节车厢之间都不是连着的,并且它们可以自行移动到B处的铁轨上.另外假定车站C可以停放任意多节车厢.但是一旦进入车站C,它就不能再回到A方向的铁轨上了,并且一旦当它进入B方向的铁轨,它就不能再回到车站C. 负责车厢调度的工作人员需要知道能否使它以a1

列车厢调度

1 ====== <--移动方向 / 3 ===== 2 ====== -->移动方向 大家或许在某些数据结构教材上见到过“列车厢调度问题”(当然没见过也不要紧).今天,我们就来实际操作一下列车厢的调度.对照上方的ASCII字符图,问题描述如下: 有三条平行的列车轨道(1.2.3)以及1-3和2-3两段连接轨道.现有一列车厢停在1号轨道上,请利用两条连接轨道以及3号轨道,将车厢按照要求的顺序转移到2号轨道.规则是: 每次转移1节车厢: 处在1号轨道的车厢要么经过1-3连接道进入3号轨道(该操作

ACM/ICPC 之 用双向链表 or 模拟栈 解“栈混洗”问题-火车调度(Tshing Hua OJ - Train)

本篇用双向链表和模拟栈混洗过程两种解答方式具体解答“栈混洗”的应用问题 有关栈混洗的定义和解释在此篇:手记-栈与队列相关 列车调度(Train) Description Figure 1 shows the structure of a station for train dispatching. Figure 1 In this station, A is the entrance for each train and B is the exit. S is the transfer end.

后进先出 栈 简单应用

Description 在PushPop城中有一个著名的火车站,车站铁路如图所示.每辆火车都从A方向驶入车站,再从B方向驶出车站,同时它的车厢可以进行某种形式的重新组合.假设从A方向驶来的火车有N节车厢(N≤1000),分别按顺序编号为1,2,…,N.负责车厢调度的工作人员需要知道能否使它以A1,A2,…,An的顺序从B方向驶出.请你编写程序,用来判断能否得到指定的车厢顺序.假定在进入车站之前每节车厢之间都是不连着的,并且它们可以自行移动,直到处在B方向的铁轨上.另外假定车站可以停放任意多的车厢