• POJ_1363_模拟


    题目描述:

      列车出入站是一种栈的机制,每组数据给予一个n,进站按1-n顺序,给定一组出站顺序,判断能否实现。

    思路:

      直接用了queue,in记录当前准备入站的列车编号,out记录已经出站的辆数+1。

      若in == 第out辆的编号,则当前入站的直接出站。

      若栈顶的编号 == 第out辆的编号,则该车出站。

      若in < 第out辆的编号,则须将in和后面out编号之前的车全都进站。

      若in > 第out辆的编号,说明当需要出站的车被堵在车站里了。

    #include<cstdio>
    #include<iostream>
    #include<stack>
    using namespace std;
    int a[1005];
    int main()
    {
        stack<int> s;
        int n;
        while(cin >> n && n)
        {
            while(cin >> a[1] && a[1])
            {
                while(!s.empty())   s.pop();
                for(int i = 2;i <= n;i++)   cin >> a[i];
                int flag = 1,in = 1,out = 1;
                while(out <= n)
                {
                    if(in == a[out])
                    {
                        in++;
                        out++;
                    }
                    else if(!s.empty() && s.top() == a[out])
                    {
                        s.pop();
                        out++;
                    }
                    else if(a[out] > in)
                    {
                        s.push(in++);
                    }
                    else
                    {
                        flag = 0;
                        break;
                    }
                }
                if(flag)    cout << "Yes" << endl;
                else    cout << "No" << endl;
            }
            cout << endl;
        }
        return 0;
    }
  • 相关阅读:
    ffmpeg filter过滤器 基础实例及全面解析
    gcc的memcpy性能测试
    repo基本操作
    repo或者git diff -uno差异文件全路径备份
    cmake视频教程
    Rust Macro assert!
    Rust迭代器测试
    钟南山每天喝牛奶
    查网页的最后修改时间
    王勃学习车辆超速监测管理系统
  • 原文地址:https://www.cnblogs.com/zhurb/p/5836846.html
Copyright © 2020-2023  润新知