#THU2024002. [清华考研机试 2024] 栈

    ID: 25 Type: Default 1000ms 512MiB Tried: 15 Accepted: 2 Difficulty: 3 Uploaded By: Tags>知识点:提高+实现:中等模拟数据结构链表队列平衡树其他启发式合并清华推研时间2024

[清华考研机试 2024] 栈

时间限制: 1.0 秒

空间限制: 512 MB

题目描述

给定 nn 个初始为空的栈,你需要维护 mm 个操作,每个操作为以下三种之一:

  • 1 x w c1~x~w~c:在第 xx 个栈中加入 ccww, 你需要回答加入后第 xx 个栈内的所有数之和;
  • 2 x c2~x~c:第 xx 个栈中弹出末尾 cc 个数(保证第 xx 个栈内有至少 cc 个数),你需要回答弹出 cc 个数之和;
  • 3 x y3~x~y:依次将第 xx 个栈的数弹出并加入到第 yy 个栈,你需要回答加入后第 yy 个栈内的所有数之和。

输入格式

从标准输入读入数据。

输入的第一行包含两个整数 n,mn,m,分别表示栈的个数和需要执行的操作个数。

接下来 mm 行,每行按上述格式描述一个操作。

输出格式

输出到标准输出。

输出 mm 行,每行一个非负整数表示对应操作应回答的结果。

3 7
1 1 3 2
1 2 2 3
1 2 4 1
3 2 3
2 3 2
3 3 1
2 1 4
6
6
10
10
4
12
12

样例 1 解释

  • 11 次操作后,第 11 个栈变为 3,33,3,答案为 3+3=63+3=6
  • 22 次操作后,第 22 个栈变为 2,2,22,2,2,答案为 2+2+2=62+2+2=6
  • 33 次操作后,第 22 个栈变为 2,2,2,42,2,2,4,答案为 2+2+2+4=102+2+2+4=10
  • 44 次操作依次弹出 4,2,2,24,2,2,2,操作后第 22 个栈为空,第 33 个栈变为 4,2,2,24,2,2,2,答案为 4+2+2+2=104+2+2+2=10
  • 55 次操作依次弹出 2,22,2,操作后第 33 个栈变为 4,24,2,答案为 2+2=42+2=4
  • 66 次操作依次弹出 2,42,4,操作后第 33 个栈变为空,第 11 个栈变为 3,3,2,43,3,2,4,答案为 3+3+2+4=123+3+2+4=12
  • 77 次操作依次弹出 4,2,3,34,2,3,3,操作后第 11 个栈变为空,答案为 4+2+3+3=124+2+3+3=12

子任务

对于所有测试数据,满足 $1\le n,m,w\le 2\times 10^5,~1\le x,y\le n,~x\ne y,~1\le c\le 10^8$。

子任务编号 分值 n,m,wn,m,w \le cc \le
1 20 20002000 11
2 10810^8
3 10510^5 11
4 10810^8
5 2×1052 \times 10^5 108 10^8