题解:P14325 [JOI2022 预选赛 R2] 图书馆 2 / Library 2
TreeNewBee_ · · 题解
P14325 题解
题目传送门 P14325
前置芝士
栈
可简单理解为 后进先出,即 新状态优先
使用方法
STL中有这么一个头文件——
#include <stack>
那么要怎么用呢?
//以string类型为例
stack<string> stk;
//入栈操作
stk.push("Luogu");
//获取栈顶元素
stk.top();
//栈顶元素爪巴
stk.pop();
没了:)
题意理解
有
- 若
S_i 全为小写字母,则将其堆叠在最上方 - 若
S_i 为READ,则阅读位于最上方的书并归还思路分析
既然是最上方,那么我们可以维护一个栈,则两种操作可转化为
-
-
思路有了,上代码:)
CODE
#include <iostream>
#include <stack>
using namespace std;
int q;//操作数量
stack<string> stk;//核心:栈
int main(){
cin >> q;
while(q--){
string s;
cin >> s;
//若不为READ 则入栈
//若为READ 则输出栈顶并出栈
if(s!="READ") stk.push(s);
else cout << stk.top() << endl,stk.pop();
}
return 0;
}
一道欢乐的栈水题~