问题标题: 酷町堂:1752 萌新又来问问题了/kel

0
0
已解决
黄子扬
黄子扬
初级天翼
初级天翼

魔改的之前写的UVA514,WA了50分

之前写的UVA:(因为UVA一直炸,所以到现在还是Waiting,不知道分数)

#include<bits/stdc++.h>
using namespace std;
int t,a[1005];
int main()
{
    while(1)
    {
        cin>>t;
        if(a[1]==0&&t==0)
            return 0;
        while(1)
        {
            int h=1;
            cin>>a[1];
            if(a[1]==0)
            {
                cout<<endl;
                break;
            }
            for(int j=2;j<=t;j++)
                cin>>a[j];
            stack<int>s;
            for(int j=1;j<=t*2;j++)
            {
                if(h==t)
                    break;
                if(j<=a[h])
                    s.push(j);
                if(s.top()==a[h])
                    s.pop(),h++;
            }
            if(h<t)
                cout<<"No"<<endl;
            else
                cout<<"Yes"<<endl;
        }
    }
    return 0;
}

本题代码:(WA50分)

#include<bits/stdc++.h>
using namespace std;
int t,a[1005];
int main()
{
    int nnn;
    cin>>nnn;
    for(int i=1;i<=nnn;i++)
    {
        cin>>t;
            int h=1;
            cin>>a[1];
            if(a[1]==0)
            {
                cout<<endl;
                break;
            }
            for(int j=2;j<=t;j++)
                cin>>a[j];
            stack<int>s;
            for(int j=1;j<=t*2;j++)
            {
                if(h==t)
                    break;
                if(j<=a[h])
                    s.push(j);
                if(s.top()==a[h])
                    s.pop(),h++;
            }
            if(h<t)
                cout<<"Impossible"<<endl;
            else
                cout<<"Possible"<<endl;
        }
    return 0;
}

思路很简单,模拟一个个入栈再判断栈顶罢了


0
已采纳
赵逸凡
赵逸凡
初级启示者
初级启示者

我的方法跟你不一样,但也是WA 50分 看不出哪里错了

核心:

for(int i=1; i<=n; i++)
        {
            cin >> x;
            if(x>maxa) 
            {
                for(int j=maxa+1; j<x; j++)
                    s.push(j);
                maxa=x;
            }
            else 
            {
                if(x==s.top()) s.pop();
                else
                    ss=1;
            }
        }

最好在循环末加上

while(!q.empty())q.pop()

0
张天璨
张天璨
新手天翼
新手天翼

这是栈和队列吧?说实话,我也不太会。

我要回答