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

这一题我以前研究过哈哈哈~

(train.cpp/c/pas)

Description

有 一 个 火 车 站 , 铁 路 如 图 所 示 ,每辆火车从 A 驶入,

再从 B 方向驶出,同时它的车厢可以重新组合。假设

从 A 方向驶来的火车有 n 节(n<=1000) ,分别按照顺

序编号为 1,2,3,…,n。假定在进入车站前,每节

车厢之间都不是连着的,并且它们可以自行移动到 B

处的铁轨上。 另外假定车站 C 可以停放任意多节车厢。

但是一旦进入车站 C,它就不能再回到 A 方向的铁轨

上了,并且一旦当它进入 B 方向的铁轨,它就不能再

回到车站 C。

负责车厢调度的 xxy 需要知道能否使它以

a1,a2,…,an 的顺序从 B 方向驶出,请来判断能否得到

指定的车厢顺序。

Input

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

示指定的车厢顺序。

Output

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

包含引号) 。还有,xxy 说了 这题 AC 有糖吃。

Example

train.in train.out

5

5 4 3 2 1

YES

Hint

对于 50%的数据,1<=N<=20。

对于 100%的数据,1<=N<=1000。

解题思路:

因为车厢调度题目的意思是能不能按输入的顺序输出,

所以应该先看输入的第一个数,样例的第一个为5

所以进5辆车,此时车已经全部进完,所以接下来5号出站后,只有可能5号下面的出站,如果可以,出站,不可以的话,则输出“NO”;

#include<cstdio>

#include<iostream>

using namespace std;

int a[1010],b[1010];

int main()

{

    freopen("train.in","r",stdin);

    freopen("train.out","w",stdout);

    int n;

    scanf("%d",&n);

    for(int i=1;i<=n;++i)//进站顺序

    {

        scanf("%d",&a[i]);

    }

    int top=0;

    for(int i=1,cur=1;i<=n;++i)

    {

        while(b[top]<a[i])//cur为出站的车厢

        {

            b[++top]=cur++;

        }

        if(b[top]==a[i])

        {

            top--;

        }

        else {

            printf("NO");

            return 0;

        }

    }

    printf("YES");

    fclose(stdin);

    fclose(stdout);

    return 0;

}
时间: 2024-10-06 01:36:11

(考试大整理~)Xxy 的车厢调度x的相关文章

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

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

(考试大整理~)迷宫x

(maze.cpp/c/pas) Description Karles 和朋友到迷宫玩耍,没想到遇上了 10000000 年一次的大洪水,好在 Karles 是一个喜 欢思考的人,他发现迷宫的地形和洪水有如下性质: ①迷宫可以被看做是一个 N*M 的矩形方阵,其中左上角坐标为(1,1),右下角坐标为(n,m), 每个格子(i,j)都有一个高度 h(i,j). ②洪水从(sx,sy)开始,如果一个格子被洪水淹没,那这个格子四周比它低(或相同)的格子 也会被淹没. 现在 Karles 想请你帮忙算算

车厢调度

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

车厢调度(train.cpp)

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

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

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

浙江大学软件学院三维动画与交互技术考试概念整理

第一讲 1.    增强现实技术AR: --融合了三维动画.立体视觉和图像处理: --建模.渲染.位置标定.图像融合: 2.    OpenGL是一种用于创建实时3D图像的编程接口. 3.    三维这个术语表示一个正在描述或显示的物体具有三维维度:宽度.高度.深度: --计算机3D图形实质上也是平面的: --在计算机屏幕上显示的二维图像,提供深度(或第三维)的错觉: 2D+透视 = 3D 透视使人产生深度的错觉. 4.    真正的3D是通过人的两只眼睛观察同一个物体,在视网膜上生成具有视差的

复旦大学数学学院高等代数历届期中考试大题精选(未完待续)

本文收集了从 2009 年至今复旦大学数学学院高等代数历届期中考试精选的大题, 其中有的大题由习题课老师或任课老师自编而来, 有的大题由其他大学的教材或学习指导书中的题目或考研试题改编而来, 也有相当部分的大题已经融入到复旦高等代数学习指导书 (第三版) 中了. 这里我们将不会公布这些精选大题的解答, 但会附加一些注解, 以供读者参考. 本科 16 级高代 I 期中考试 四.(10分)  设 $A=(a_{ij})$ 是 $n$ 阶非零实矩阵, 其中 $n\geq 3$ 为奇数. 设 $A_{i

Java集合大整理

此处为整理,更详细的源码分析请查阅 JDK源码分析其他文章. 为了适应csdn的窗口大小,表格严重变形了... null 值重复 底层实现 扩容 增.删.迭代 包含 备注 HashSet 允许,just 1个 no HashMap 同HashMap [add]:调用HashMap的put方法,put的value传入伪值static final Object PRESENT = new Object(),仅仅为了保持映射关系:(所有value都是同一个对象) [remove]:调map的remov