zoukankan      html  css  js  c++  java
  • COJ 0015 20602铁轨

    传送门:http://oj.cnuschool.org.cn/oj/home/problem.htm?problemID=15

    20602铁轨
    难度级别:B; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B
    试题描述

        某城市有一个火车站,铁轨铺设如图所示,有n节车厢从A方向驶入车站,按进站顺序编号为1至n。你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨并驶出车站。为了重组车厢,你可以借助中转站C。这是一个可以停放任意多节车厢的车站,但由于末端封顶,驶入C的车厢必须按照相反的顺序驶出车站。例如:出站顺序(5,4,1,2,3)是不可能的,而(5,4,3,2,1)是可能的。对于每节车厢,一旦从A移入C,就不能再回到A了;一旦从C移入B,就不能回到C了。换句话说,在任意时刻,只有两种选择A->C和C->B。
                           
    现在给你一种1到n的排列,请你判断是否是题目描述的一种可能,如果是请输出yes,否则输出no

    输入
    两行,第一行有一个正整数n,表示有n节车厢,第二行有n个正整数,即1到n的一种排列,两两之间有一个空格分隔。
    输出
    yes或者no
    输入示例
    5
    5 4 1 2 3
    输出示例
    no
    其他说明
    对于 100%的数据,0 < n ≤ 100。

    栈瞎搞

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<algorithm>
     5 #include<stack>
     6 using namespace std;
     7 int n,A[100+10],top=0;stack<int>S;
     8 inline int read(){
     9     int x=0,sig=1;char ch=getchar();
    10     while(!isdigit(ch)){if(ch=='-') sig=-1;ch=getchar();}
    11     while(isdigit(ch)) x=10*x+ch-'0',ch=getchar();
    12     return x*=sig;
    13 }
    14 inline void write(int x){
    15     if(x==0){putchar('0');return;} if(x<0) putchar('-'),x=-x;
    16     int len=0,buf[15]; while(x) buf[len++]=x%10,x/=10;
    17     for(int i=len-1;i>=0;i--) putchar(buf[i]+'0');return;
    18 }
    19 void init(){
    20     n=read();
    21     for(int i=1;i<=n;i++) A[i]=read();
    22     top=1;
    23     return;
    24 }
    25 void work(){
    26     int tmp;
    27     for(int i=1;i<=n;i++){
    28         S.push(i);
    29         while(!S.empty()&&S.top()==A[top]){
    30             S.pop();top++;
    31         }
    32     }
    33     return;
    34 }
    35 void print(){
    36     if(S.empty()) puts("yes");
    37     else puts("no");
    38     return;
    39 }
    40 int main(){
    41     init();work();print();return 0;
    42 }
  • 相关阅读:
    CentOS查看和修改MySQL字符集
    centos修改mysql密码或者进入mysql后解决Access denied for user ''@'localhost' to database 'mysql错误
    Centos设置开机启动Apache和Mysql
    centos搭建ftp服务器
    1QT在线帮助文档
    storm学习
    java提高篇之理解java的三大特性——多态
    基于AQS的锁
    反转单链表的几种方法
    Java:基于LinkedList实现栈和队列
  • 原文地址:https://www.cnblogs.com/chxer/p/4456501.html
Copyright © 2011-2022 走看看