在oj上没有找到这题,不知道代码是否是正确的。
开始没时间做了,后来重新读了一片题,发现自己误解了题意,将叠罗汉认为成了叠金字塔,文字描述较多,但主要就是个栈的模拟。
#include <iostream>
using namespace std;
int const maxn = 10010;
int main() {
int p = -1;
int qu[maxn];
int t;
cin>>t;
while (t--) {
int n,m,x;
cin>>n>>m>>x;
for (int i=0;i<m;i++) {
int order;
cin>>order;
if (order==-1) p--;
else {
qu[++p] = order;
}
}
int ans = 0;
for (;p>=0;p--) {
ans+=p-1;
if (qu[p]==n) {
break;
}
}
if(ans<=x) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
}
本文介绍了一个关于栈模拟的问题,通过代码实现了解决方案。题目理解容易出现偏差,正确理解题目后,利用栈进行模拟操作,解决叠罗汉问题。代码使用 C++ 编写,并包含输入输出示例。
1002

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



