车厢调度(train.cpp)

车厢调度(train.cpp)

【问题描述】

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

负责车厢调度的工作人员需要知道能否使它以a1,a2,…,an的顺序从B方向驶出,请来判断能否得到指定的车厢顺序。

【输入】train.in

输入文件的第一行为一个整数n,其中n<=1000,表示有n节车厢,第二行为n个数字,表示指定的车厢顺序。

【输出】train.out

如果可以得到指定的车厢顺序,则输出一个字符串”YES”,否则输出”NO”(注意要大写,不包含引号)。

【输入样例】

5

5 4 3 2 1

【输出样例】

YES

 1 #include<iostream>
 2 using namespace std;
 3 int stack[10001];
 4 int top=1;
 5 int main()
 6 {
 7     int n;
 8     cin>>n;
 9     for(int i=1;i<=n;i++)
10     {
11         int d;
12         cin>>d;
13         if(i==1)
14         {
15             top=d-1;
16             for(int j=1;j<=top;j++)
17             stack[j]=j;
18         }
19         else if(top==d)
20         {
21             stack[top]=0;
22             top--;
23         }
24         else if(d<top)
25         {
26             cout<<"NO";
27             return 0;
28         }
29     }
30     cout<<"YES";
31     return 0;
32 }
时间: 2024-08-11 05:42:52

车厢调度(train.cpp)的相关文章

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

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

车厢调度 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号轨道,将车厢按照要

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

列车厢调度

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.

清华学堂 列车调度(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. All single tracks are one-way, which means that the train ca