专栏文章

题解:P14325 [JOI2022 预选赛 R2] 图书馆 2 / Library 2

P14325题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minh3w77
此快照首次捕获于
2025/12/02 02:19
3 个月前
此快照最后确认于
2025/12/02 02:19
3 个月前
查看原文

P14325 题解

题目传送门 P14325

前置芝士

可简单理解为 后进先出,即 新状态优先

使用方法

STL中有这么一个头文件——
CPP
#include <stack>
那么要怎么用呢?
CPP
//以string类型为例
stack<string> stk;
//入栈操作
stk.push("Luogu");
//获取栈顶元素
stk.top();
//栈顶元素爪巴
stk.pop();
没了:)

题意理解

QQ次由字符串SiS_i表示的两种操作
  1. SiS_i全为小写字母,则将其堆叠在最上方
  2. SiS_iREAD,则阅读位于最上方的书并归还

思路分析

既然是最上方,那么我们可以维护一个,则两种操作可转化为
  1. SiS_i全为小写字母时入栈
  2. SiS_iREAD输出栈顶元素出栈
思路有了,上代码:)

CODECODE

CPP
#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;
}
一道欢乐的栈水题~

评论

0 条评论,欢迎与作者交流。

正在加载评论...