AT_abc342_g [ABC342G] Retroactive Range Chmax
题目描述
给定一个长度为 N 的整数序列 A=(A1,A2,…,AN)。
请依次处理 Q 个操作。操作有以下三种类型之一:
- 类型 1 的操作由整数三元组 (l,r,x) 表示,对 i=l,l+1,…,r,将 Ai 替换为 max{Ai,x}。
- 类型 2 的操作由整数 i 表示,撤销第 i 次操作(保证第 i 次操作是类型 1,且此前未被撤销)。此时数列 A 应为从初始状态出发,依次执行所有未被撤销的类型 1 操作后的结果。
- 类型 3 的操作由整数 i 表示,输出当前 Ai 的值。
输入格式
输入按以下格式从标准输入读入。
N A1 A2 … AN Q query1 query2 ⋮ queryQ
其中,queryk (1≤k≤Q) 表示第 k 次操作,具体格式如下:
对于类型 1 的操作:
1 l r x
表示第 k 次操作为 (l,r,x) 的类型 1 操作。
对于类型 2 的操作:
2 i
表示第 k 次操作为 i 的类型 2 操作。
对于类型 3 的操作:
3 i
表示第 k 次操作为 i 的类型 3 操作。
输出格式
设所有类型 3 操作的个数为 q,请输出 q 行。第 i 行(1≤i≤q)输出第 i 个被输入的类型 3 操作所要求的值。
输入输出样例 #1
输入 #1
6
2 7 1 8 2 8
15
3 1
3 3
3 4
1 1 5 4
3 1
3 3
3 4
1 3 6 9
3 1
3 3
3 4
2 4
3 1
3 3
3 4
输出 #1
2
1
8
4
4
8
4
9
9
2
9
9
输入输出样例 #2
输入 #2
24
721 78 541 256 970 478 370 467 344 542 43 166 619 17 592 222 983 729 338 747 62 452 815 838
35
3 10
3 8
3 8
3 13
3 9
1 1 17 251
3 3
3 19
3 13
3 22
3 1
3 15
3 18
3 10
3 15
1 16 19 883
1 8 23 212
3 5
3 13
2 6
3 15
1 5 18 914
2 17
3 20
1 23 23 56
3 13
2 25
3 13
3 13
3 10
2 16
1 17 22 308
3 19
3 17
3 7
输出 #2
542
467
467
619
344
541
338
619
452
721
592
729
542
592
970
619
592
747
914
914
914
914
338
983
914
说明/提示
数据范围
- 1≤N≤2×105
- 1≤Ai≤109 (1≤i≤N)
- 1≤Q≤2×105
- 对于类型 1 操作,1≤l≤r≤N 且 1≤x≤109
- 对于类型 2 操作,i 不超过此前操作次数且 1≤i
- 对于类型 2 操作,第 i 次操作为类型 1
- 对于类型 2 操作,i 不会重复
- 对于类型 3 操作,1≤i≤N
- 所有输入均为整数
样例说明 1
初始时,数列 A 为 (2,7,1,8,2,8)。第 1,2,3 次操作分别输出 A1,A3,A4 的值,即 2,1,8。第 4 次操作将 A1,A2,A3,A4,A5 替换为 max{Ai,4}。操作后,A 变为 (4,7,4,8,4,8)。第 5,6,7 次操作分别输出此时 A1,A3,A4 的值,即 4,4,8。第 8 次操作将 A3,A4,A5,A6 替换为 max{Ai,9}。操作后,A 变为 (4,7,9,9,9,9)。第 9,10,11 次操作分别输出此时 A1,A3,A4 的值,即 4,9,9。第 12 次操作撤销第 4 次操作。操作后,A 变为 (2,7,9,9,9,9)。第 13,14,15 次操作分别输出此时 A1,A3,A4 的值,即 2,9,9。
由 ChatGPT 4.1 翻译