90 #lg3919. C10C49【模板】可持久化线段树 1(可持久化数组)

    ID: 513 传统题 1500ms 1024MiB 尝试: 207 已通过: 45 难度: 7 上传者: 标签>线段树平衡树递归可持久化线段树可持久化模板题提高+/省选−

C10C49【模板】可持久化线段树 1(可持久化数组)

P3919 【模板】可持久化线段树 1(可持久化数组)

题目描述

维护这一个长度为 N N 的数组 aia_i,有 MM 次操作,操作如下两种:

  • v 1 p c,即为在版本 v v 的基础上,将 ap a_{p} 修改为 cc

  • v 2 p,即访问版本 v v 中的 ap a_{p} 的值。

此外,每进行一次操作,就会生成一个新的版本。版本编号即为当前操作的编号(从 11 开始编号,版本 00 表示初始状态数组)。

对于操作 22,即为生成一个完全一样的版本,不作任何改动。即,询问生成的版本是询问所访问的那个版本的复制。

输入格式

第一行两个正整数 N,M N, M

第二行 N N 个整数ai a_i 1iN 1 \leq i \leq N )。

接下来 M M 行每行包含 3344 个整数,代表两种操作之一。

输出格式

输出包含若干行,依次为每个操作 22 的结果。

输入输出样例 #1

输入 #1

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

输出 #1

59
87
41
87
88
46

说明/提示

数据规模

对于 30%30\% 的数据,1N,M103 1 \leq N, M \leq {10}^3

对于 50%50\% 的数据,1N,M104 1 \leq N, M \leq {10}^4

对于 70%70\% 的数据,1N,M105 1 \leq N, M \leq {10}^5

对于 100%100\% 的数据:

  • 1N,M106 1 \leq N, M \leq {10}^6
  • 1pN1 \leq p \leq N
  • 设当前是第 xx 次操作,0v<x0 \leq v < x
  • 109ai,c109-{10}^9 \leq a_i,c \leq {10}^9

样例说明

所有操作结束后,总共生成了 1111 个版本,编号为 0100 \sim 10,依次为:

版本 0059 46 14 87 41

版本 1159 46 14 87 41

版本 2214 46 14 87 41

版本 3357 46 14 87 41

版本 4488 46 14 87 41

版本 5588 46 14 87 41

版本 6659 46 14 87 41

版本 7759 46 14 87 41

版本 8888 46 14 87 41

版本 9914 46 14 87 41

版本 101059 46 14 87 91