1051 Pop Sequence (25 分)难度: 中 / 知识点: 模拟 栈
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1051 Pop Sequence (25 分)难度: 中 / 知识点: 模拟 栈相关的知识,希望对你有一定的参考价值。
https://pintia.cn/problem-sets/994805342720868352/problems/994805427332562944
#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int a[N],n,m,k;
bool check()
{
stack<int>st;
for(int i=0,val=1;i<n;i++)
{
while(val<=n&&(st.empty() || st.top()!=a[i])) st.push(val++);//让之前的元素全部进栈
if(st.empty()||st.top()!=a[i]) return false;//弹不出来元素
st.pop();
if(st.size()>=m) return false;//如果弹出元素后,栈的大小还是大于等于m则不合法
}
return true;
}
int main(void)
{
cin>>m>>n>>k;
while(k--)
{
for(int i=0;i<n;i++) cin>>a[i];
if(check()) puts("YES");
else puts("NO");
}
return 0;
}
以上是关于1051 Pop Sequence (25 分)难度: 中 / 知识点: 模拟 栈的主要内容,如果未能解决你的问题,请参考以下文章