zoukankan      html  css  js  c++  java
  • poj 1363 Rails 解题报告

    题目链接:http://poj.org/problem?id=1363

    题意:有一列火车,车厢编号为1~n,从A方向进站,向B方向出站。现在进站顺序确定,给出一个出站的顺序,判断出站顺序是否合理。

    实际上是模拟栈的过程,而栈的特点是先进后出。另外一个麻烦的地方就是输入输出格式问题。

    本题实现提供两种方法:没有用到STL栈和有用到STL栈

     1 #include <iostream>      // 法二:头文件多包含一个 #include <stack>
     2 using namespace std;
     3 
     4 const int maxn = 1000 + 5;
     5 
     6 int main()
     7 {
     8     int A, B, i, n, top, target[maxn], stack[maxn];  // 法二:数组stack去掉, 变成 stack<int> s
     9     while (scanf("%d", &n) && n)
    10     {
    11         while (1)
    12         {
    13             int flag = 1;
    14             for (i = 1; i <= n; i++)
    15             {
    16                 scanf("%d", &target[i]);
    17                 if (target[1] == 0)
    18                 {
    19                     flag = 0;
    20                     break;
    21                 }
    22             }
    23             if (!flag)
    24             {
    25                 printf("\n");
    26                 break;
    27             }
    28             int ok = 1;
    29             A = B = 1;
    30             top = 0;
    31             while (B <= n)
    32             {
    33                 if (A == target[B])    // 处理1~n的特殊情况
    34 { 35 A++, B++; 36 } 37 else if (top && stack[top] == target[B]) // top && !s.empty() && s.top() == target[B] 出栈
    38 { 39 top--; // s.pop(); 40 B++; 41 } 42 else if (A <= n) 43 { 44 stack[++top] = A; // s.push(A); 进栈 45 A++; 46 } 47 else 48 { 49 ok = 0; 50 break; 51 } 52 } 53 if (ok) 54 printf("Yes\n"); 55 else 56 printf("No\n"); 57 } 58 } 59 return 0; 60 }
  • 相关阅读:
    杂题
    jzoj5679
    CF434E
    jzoj6152
    jzoj6150
    mysql 第06章 运算符
    mysql 第05章 数据类型
    mysql 第04章 SQL语句
    mysql 第03章 体系结构
    mysql 第02章 基本操作
  • 原文地址:https://www.cnblogs.com/windysai/p/3222054.html
Copyright © 2011-2022 走看看