警示后人,自己综合讨论版想到的强数据

P4387 【深基15.习9】验证栈序列

VOLCANOHERE @ 2023-08-27 19:18:06

第一组数据:
2
5
1 2 3 4 5
2 5 4 1 3
5
1 2 3 4 5
2 5 4 3 1
输出分别是No和Yes

可以查看你是否清空栈

第二组数据:
1
3
1 2 3
2 3 1

1
3
1 2 3
2 1 3
两个输出都是Yes

可以检验你模拟栈是否正确

至少我通过这两个造的数据之后就AC了,希望能帮到大家(一个蒟蒻的建议,没帮到勿喷


by 2672434062xzl @ 2023-09-09 15:03:51

#include <iostream>
#include<cstdio>
#include <vector>
#include<queue>
using namespace std;
typedef long long ll;
const int N=1e6+10,mod=1e9+7;
int n,m;
signed main() {
    int t;
    for(cin>>t;t;--t)
    {
        vector<int> q;
        queue<int> a,b;
        scanf("%d",&n);
        for(int i=1;i<=n;++i)
        {
            int x;
            scanf("%d",&x);
            a.push(x);
        }
        for(int i=1;i<=n;++i)
        {
            int x;
            scanf("%d",&x);
            b.push(x);
        }
        while(!a.empty())
        {
            q.push_back(a.front());
            a.pop();
            while(q.back()==b.front())
            {
                q.pop_back();
                b.pop();
            }
        }
        if(q.empty()&&b.empty())puts("Yes");
        else puts("No");
    }
    return 0;
}

都对了,20分


by justforfun @ 2023-10-28 14:53:01

妙手回春啊大佬


by pi3141592 @ 2023-11-20 20:10:39

补充一下,记得head归0或1

惨案


|