100 #lg6242. 【吉司机线段树】【模板】线段树 3(线段树区间最值操作+区间历史最值)
【吉司机线段树】【模板】线段树 3(线段树区间最值操作+区间历史最值)
P6242 【模板】线段树 3(区间最值操作、区间历史最值)
题目背景
本题是线段树维护区间最值操作与区间历史最值的模板。
题目描述
给出一个长度为 的数列 ,同时定义一个辅助数组 , 开始与 完全相同。接下来进行了 次操作,操作有五种类型,按以下格式给出:
1 l r k:对于所有的 ,将 加上 ( 可以为负数)。2 l r v:对于所有的 ,将 变成 。3 l r:求 。4 l r:对于所有的 ,求 的最大值。5 l r:对于所有的 ,求 的最大值。
在每一次操作后,我们都进行一次更新,让 。
输入格式
第一行包含两个正整数 ,分别表示数列 的长度和操作次数。
第二行包含 个整数 ,表示数列 。
接下来 行,每行行首有一个整数 ,表示操作类型;接下来两个或三个整数表示操作参数,格式见【题目描述】。
输出格式
对于 的操作,输出一行包含一个整数,表示这个询问的答案。
输入输出样例 #1
输入 #1
5 6
1 2 3 4 5
3 2 5
1 1 3 3
4 2 4
2 3 4 1
5 1 5
3 1 4
输出 #1
14
6
6
11
说明/提示
样例说明 #1
| 操作次数 | 输入内容 | 操作 | 数列 | 输出结果 |
|---|---|---|---|---|
| 0 | ||||
| 1 | 3 2 5 |
求出 所有数的和 | 14 |
|
| 2 | 1 1 3 3 |
将 内所有数加 | ||
| 3 | 4 2 4 |
求出 所有数的最大值 | 6 |
|
| 4 | 2 3 4 1 |
将 所有数与 取最小值 | ||
| 5 | 5 1 5 |
求出 所有位置历史最大值的最大值 | 6 |
|
| 6 | 3 1 4 |
求出 所有数的和 | 11 |
|
数据规模与约定
- 对于测试点 ,满足 ;
- 对于测试点 ,满足 ;
- 对于测试点 ,满足 ;
- 对于全部测试数据,保证 ,,,,,。
提示
本题输入量较大,请使用合理高效的读入方法。
相关
在下列比赛中: