zoukankan      html  css  js  c++  java
  • Rails UVA

    题目链接:https://vjudge.net/problem/UVA-514

    题目大意:右边的火车经过中间的收费站到左边,右边火车进站的秩序是1~n   判断是否能以题中是所给的次序通过

    思路:很明显的先进后出  显然是栈 ,这是第一道栈的题目,算是入了个门吧 ,会了栈就很简单了,不细讲,看代码:

    #include<iostream>
    #include<stack>
    using namespace std;
    const int maxn=1000+5;
    int target[maxn];
    int main()
    {
        int n;
        while(cin>>n)
        {
            if(n==0) break;
    
            while(true)
            {
    
                stack<int>s;
                int flag=1;
                cin>>target[1];
                if(target[1]==0) break;
                for(int i=2;i<=n;i++) cin>>target[i];
                //1`n依次进站
                int A=1,B=1;//A是当前入站的车号 B是目标序列的下标
                while(B<=n)
                {
                    if(A==target[B])//入站的等于出站的  直接出去
                    {
                        A++;
                        B++;
                    }
                    else if(!s.empty()&&(s.top()==target[B]))//栈顶元素等于序列中的元素
                    {
                        s.pop();
                        B++;
                    }
                    else if(A<=n) s.push(A++);
                    else
                    {
                        flag=0;
                        break;
                    }
                }
                if(flag) cout<<"Yes"<<endl;
                else cout<<"No"<<endl;
            }
            cout<<endl;
    
        }
        stack<int>s;
    
    }
    当初的梦想实现了吗,事到如今只好放弃吗~
  • 相关阅读:
    语音识别系列之区分性训练和LF-MMI【转】
    node、npm安装与升级
    Vue3.0 新特性以及使用经验总结
    div垂直居中的方法
    前端性能优化
    大型网站设计总结
    前端SEO
    前端埋点总结
    jenkins自动构建、自动部署
    Python常见whl文件集合
  • 原文地址:https://www.cnblogs.com/caijiaming/p/10338269.html
Copyright © 2011-2022 走看看