题目 1754

栈的维护

查看题解 ↗GitHub ↗如何评测
题号
1754
时间限制
1000 ms
内存限制
512 MB
标签
数据结构
来源
信息学奥赛一本通 · 高手训练篇·四、数据结构(高手训练)

【题目描述】

从前有个栈,一开始是空的。 你写下了 mm 个操作,每个操作形如“k  vk\;v”,若 k=0k = 0,代表往栈顶加入一个数 vv;若k=1k = 1,则代表从栈顶弹出 vv 个数,如果栈中的元素少于 vv 个,则全部弹出。 接着你又进行了 qq 次修改,每次你会选择一个操作,并且修改它的两个参数。 在每次修改后,你都要求出如果依次执行这些操作,最后栈中剩下的元素之和。

【输入】

第一行两个正整数m,qm,q ,分别表示操作数和修改次数。 接下来 mm 行,每行两个整数 k,vk,v ,代表一个操作。 接下来 qq 行,每行三个正整数 c,k,vc,k,v ,表示将第 cc 个操作的参数修改为 kk 和 vv。

【输出】

输出 qq 行,每行一个整数,代表依次执行所有操作后栈中剩下的元素之和。

【输入样例】

文本
4 3
0 1
0 2
1 2
0 3
2 0 3
3 1 1
4 1 1

【输出样例】

文本
3
4
0

【提示】

【数据规模】 对于30%的数据,m,q≤1000m,q≤1000。 对于另外20%的数据,保证执行每个k=1k = 1的操作时都会弹出栈中所有元素。 对于100%的数据,m,q≤2×105,v≤104m, q ≤ 2×10^5,v ≤ 10^4。

数据下载

题目 1754 的公开数据

正在读取文件列表…

常用命令

题目 1754 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。