loj#P6576. 线段树经典题
线段树经典题
题目描述
这是一道线段树经典题。
你需要写一个数据结构(线段树)维护长度为 的三个序列 ,下标为 ,支持:
-
对于 ,令 。
-
对于 ,令 。
-
求 。
-
求 。
-
求 。
每次修改操作后(前两种操作),令 $ B_i\leftarrow B_i+A_i,C_i\leftarrow\max(C_i,A_i) $。
初始给定 ,同时初始 。
输入格式
第一行两个正整数 ,分别表示序列长度和操作个数。
第二行 个整数表示序列 。
接下来 行,每行第一个整数表示操作类型编号,其他数字意义同题面:
- 若为类型 ,接下来三个整数 。
- 若为类型 ,接下来三个整数 。
- 若为类型 ,接下来两个整数 。
- 若为类型 ,接下来两个整数 。
- 若为类型 ,接下来两个整数 。
输出格式
对于每个类型为 的操作,输出一行一个整数表示答案。
10 10
-3 -1 -1 2 -2 2 5 2 3 -3
2 2 6 2
4 5 8
5 6 9
1 6 7 -4
2 3 8 6
3 4 5
5 1 3
1 5 7 -7
4 5 9
5 2 8
11
5
16
7
22
10
10 10
3 -5 -2 -2 3 -1 -1 3 -4 -4
4 5 8
2 1 10 -5
3 1 7
1 8 9 -3
5 1 10
3 7 10
2 2 4 -4
4 1 2
5 8 8
1 2 8 1
0
-40
3
-27
-40
3
数据范围与提示
对于 的数据,,,数据保证过程中所有相关数值及输出的绝对值均在 long long
范围内。
数据均为随机,但没有梯度。