#P3919. 可持久化线段树 1(可持久化数组)
可持久化线段树 1(可持久化数组)
可持久化线段树 1(可持久化数组)
- 时间限制:2 秒
- 内存限制:512 MiB
题目描述
维护一个长度为 的数组。初始数组称为版本 。你需要依次执行 次操作,第 次操作会在某个已有版本 的基础上生成版本 。
操作有以下两种:
- 将版本 中位置 的值修改为 ,得到新版本 ;
- 查询版本 中位置 的值,并令新版本 与版本 完全相同。
输入格式
第一行包含两个正整数 ,分别表示数组长度和操作数。
第二行包含 个整数 ,表示版本 的数组。
接下来 行描述操作。设当前为第 次操作:
v 1 p c:在版本 的基础上将位置 的值修改为 ;v 2 p:查询版本 中位置 的值,并复制版本 。
输出格式
对于每个查询操作,输出一行一个整数,表示查询结果。
样例输入
5 10
59 46 14 87 41
0 2 1
0 1 1 14
0 1 1 57
0 1 1 88
4 2 4
0 2 5
0 2 4
4 2 1
2 2 2
1 1 5 91
样例输出
59
87
41
87
88
46
数据范围
对于所有数据:
- ;
- ;
- ;
- 对于第 次操作,。
子任务
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 30 | |
| 2 | 20 | |
| 3 | ||
| 4 | 30 | 无特殊限制 |
样例说明
每次操作都会生成一个新版本。查询操作本身不修改数组,因此它生成的版本与所查询的版本完全相同。