https://vjudge.net/problem/UVA-514

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int MAXN=;
  4. int target[MAXN];
  5. int main()
  6. {
  7. int n,f;
  8. while(scanf("%d",&n)&&n)
  9. {
  10. while(){
  11. f=;
  12. stack<int>s;
  13. int A=,B=;
  14. for(int i=;i<=n;i++)
  15. {
  16. cin>>target[i];
  17. if(target[]==)
  18. {
  19. cout<<endl;
  20. f=;
  21. break;
  22. }
  23. }
  24. if(f==)break;
  25. int ok=;
  26. while(B<=n)
  27. {
  28. if(target[B]==A)
  29. A++,B++;
  30. else if(!s.empty()&&s.top()==target[B])
  31. {
  32. s.pop();
  33. B++;
  34. }
  35. else if(A<=n)
  36. s.push(A++);
  37. else
  38. {
  39. ok=;
  40. break;
  41. }
  42. }
  43. printf("%s\n",ok?"Yes":"No");
  44. }
  45. }
  46. return ;
  47. }

1)栈的应用

用A来代表车厢序号,B代表target数组用来表示列车出站的序号顺序。B用来表示已经驶进B的车辆数。用stack<int>s表示C。

1.A中首元素==B首元素,A直接驶入B;

2.A中首元素!=B首元素,栈首元素==B首元素,栈中首元素出栈;

3.A中首元素!=B首元素,栈首元素!=B首元素,A中元素个数>0,A中元素进入栈;

4.A中首元素!=B首元素,栈首元素!=B首元素,A中元素个数<=0,该解不成立。

2)输入输出的形式奇特,需要多加注意。

Uva514的更多相关文章

  1. 【UVa-514】铁轨——栈的学习

    UVa514 Rails(铁轨) 题目:铁轨 题目链接: UVa514链接 题目描述: 某城市有一个火车站,有n节车厢从A方向驶入车站,按进站的顺序编号为1-n.你的任务是判断是否能让它们按照某种特定 ...

  2. UVA514 铁轨 Rails:题解

    题目链接:https://www.luogu.org/problemnew/show/UVA514 分析: 入站序列是1-n,入站后判断如果等于出站序列的当前值,则直接出站.否则就在栈里待着不动.模拟 ...

  3. uva514(trail)(模拟栈)

    //#define LOCAL #include<cstdio> #include<cstring> #include<cstdlib> #include<s ...

  4. 暑假集训(1)第五弹 -----Rails(Uva514)

    PopPush城市有一座著名的火车站.这个国家到处都是丘陵.而这个火车站是建于上一个世纪.不幸的是,那时的资金有限.所以只能建立起一条路面铁轨.而且,这导致这个火车站在同一个时刻只能一个轨道投入使用, ...

  5. UVA514 Rails

     铁轨 PopPush城市有一座著名的火车站.这个国家到处都是丘陵.而这个火车站是建于上一个世纪.不幸的是,那时的资金有限.所以只能建立起一条路面铁轨.而且,这导致这个火车站在同一个时刻只能一个轨道投 ...

  6. UVA-514 Rails (栈)

      Rails  There is a famous railway station in PopPush City. Country there is incredibly hilly. The s ...

  7. UVa514 Rails (栈)

    题意:一列有n节车厢的火车按顺序进站,给你一个出站顺序,问你该火车的车厢能否以该顺序出站? 分析:出站的车厢满足后进先出的关系,所以我们考虑采用栈s 假设车厢一共有n节,n = 5: 进站顺序A:1 ...

  8. 【UVA514】铁轨

    题目大意:给定 N 个数,编号从 1 到 N,现需要判断,利用一个无限大的栈结构,能否实现到给定序列的转换. 题解:本题一共涉及三个部分的交互,分别是目标序列,栈和初始序列,由栈的顶端进入,顶端弹出性 ...

  9. 紫书140例题6-2 铁轨&&UVa514

    某城市有一个火车站,铁轨铺设如图6-1所示.有n节车厢从A方向驶入车站,按进站顺序编号为1~n.你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨,并驶出车站.例如,出栈顺序(5 4 1 2 ...

随机推荐

  1. php返回数组后处理(开户成功后弹窗提示)

    1. 在注册的时候,注册成功后经常会弹窗提示自己注册的信息,这类做法需要返回mysql数据库中获取的数组值,返回给前台页面,赋值给弹窗. 2.做法: 返回数组 打印的数组的值 返回数组处理 赋值给弹窗 ...

  2. python学习之老男孩python全栈第九期_数据库day001 -- 作业

    创建如图所示数据库: 创建过程:  查看数据库,创建数据库 db1,再查看一下数据库  进入数据库,查看一下表  接着再创建一个class表 发现增加了重复数据,因此要把第二个修改一下  修改完数据之 ...

  3. Java 8方法引用使用指南

    [编者按]本文作者为拥有15年 Java 开发经验的资深程序员 Per-Åke Minborg,主要介绍如何灵活地解析 Java 中的方法引用.文章系国内 ITOM 管理平台 OneAPM 编译呈现. ...

  4. jquery validation表单验证插件2。

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. HDFS pipeline写 -- datanode

    站在DataNode的视角,看看pipeline写的流程,本文不分析客户端部分,从客户端写数据之前拿到了3个可写的block位置说起. 每个datanode会创建一个线程DataXceiverServ ...

  6. sql建JOB语句

    declare job_id pls_integer; begin sys.dbms_job.submit(job => job_id, what => 'proc_AGTAWBSTATI ...

  7. [翻译] JFMinimalNotifications

    JFMinimalNotifications This is an iOS UIView for presenting a beautiful notification that is highly ...

  8. Python学习---IO的异步[asyncio +aiohttp模块]

    aiohttp aiohttp是在asyncio模块基础上封装的一个支持HTTP请求的模块,内容比8.4.2[基于asyncio实现利用TCP模拟HTTP请求]更全面 安装aiohttp: pip3 ...

  9. php箭头符号

    ->这个箭头是调用类中的函数  比如  class a  {  function b()  {    echo ’a’;  }  }  $a=new a;  $a->b();  输出:a ...

  10. September 30th 2017 Week 39th Saturday

    The simplest answer is often the correct one. 最简单的答案通常是最正确的答案. Simplest is always best. Sometimes yo ...