#include<bits/stdc++.h>
using namespace std;
int main()
{
//freopen("in.txt","r",stdin);
int m,n,k;
cin>>m>>n>>k;
for(int i=0;i<k;i++){
int cnt=1;stack<int> st;
vector<int> ppp;ppp.resize(n+1);
for(int j=1;j<=n;j++){
cin>>ppp[j];
}
for(int j=1;j<=n;j++){
st.push(j);
if(st.size()>m) break;
while(!st.empty()&&st.top()==ppp[cnt]){
st.pop();
cnt++;
}
}
if(cnt==n+1) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
本文介绍了一个使用栈解决序列匹配的问题。通过输入一系列整数序列,判断这些序列是否可以通过一个大小受限的栈来生成。该算法适用于算法竞赛及数据结构学习。
473

被折叠的 条评论
为什么被折叠?



