uva 514 火车

Posted jrjxt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uva 514 火车相关的知识,希望对你有一定的参考价值。

#include<cstdio>
#include<stack>
#include<cstring>
using namespace std;
int n, jxt[1100] = {0};
int main()
{
    int ll = 0;
    while(scanf("%d", &n) != EOF && n)
    {
        while(scanf("%d", &jxt[1]) != EOF && jxt[1])
        {
        for(int i = 2; i <= n; i++)
            scanf("%d", &jxt[i]);
        stack<int> s;
        int a = 1, b = 1;
        int flag = 1;
        while(b <= n)
        {
            if(a == jxt[b]) {a++; b++;}//正好符合一进一出时的情境。
            else if(!s.empty() && s.top() == jxt[b]) {s.pop(); b++;}//一串的
            else if(a <= n) s.push(a++);
            else {flag = 0; break;}
        }
        if(flag)
            printf("Yes
");
        else printf("No
");
        memset(jxt, 0, sizeof(jxt));
        }
        printf("
");
    }
}

这个题吧。。。感觉a,b很重要。

可以把b,看作是成题目所给的那些火车序列里实现的火车数目, 当为n时, 即表示成功。

a可以看做成已过的火车,当其数目大于n时, 及失败。

把握好这两点即可。

 

可实现的火车无非两种情况一个,,一串的,  一个单个进的。。。

以上是关于uva 514 火车的主要内容,如果未能解决你的问题,请参考以下文章

UVA514 Rails(stack)

Rails,uva 514

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

紫书系列 UVA 514 铁轨(Rails)ACM/ICPC CERC 1997

Rails (栈)

Uva 514 Rails