#loj5212. 「UOI 2024 Stage 4 Day1」子数组美丽度查询

「UOI 2024 Stage 4 Day1」子数组美丽度查询

[AdditionalFile5212.zip](file://AdditionalFile5212.zip?type=additional_file)

#5212. 「UOI 2024 Stage 4 Day1」子数组美丽度查询

标签: 传统 | 时间限制: 2500 ms | 内存限制: 512 MiB |

题目描述

题目译自 Ukrainian Olympiads in Informatics 2024 Stage 4 Day1 T3. Запити красот підмасивів

我们称一个长度为 mm 的整数数组 bb权重为其元素之和的绝对值,即 b1+b2++bm|b_1 + b_2 + \ldots + b_m|

我们定义数组 cc 分割成若干子数组的美丽度为所有子数组权重中的最小值。形式上,数组 cc 分割成 kk 个子数组 $[c_1, \ldots, c_{p_1}], [c_{p_1+1}, \ldots, c_{p_2}], \ldots, [c_{p_{k-1}+1}, \ldots, c_{p_k}]$(其中 1p1<p2<<pk1<pk=n1 \leq p_1 < p_2 < \ldots < p_{k-1} < p_k = n)的美丽度为 $\min(|c_1 + \ldots + c_{p_1}|, |c_{p_1+1} + \ldots + c_{p_2}|, \ldots, |c_{p_{k-1}+1} + \ldots + c_{p_k}|)$。例如,数组 [3,6,4,5,8][3, -6, 4, 5, -8] 分割成子数组 [3,6],[4],[5,8][3, -6], [4], [5, -8]美丽度为 $\min(|3 + (-6)|, |4|, |5 + (-8)|) = \min(3, 4, 3) = 3$。

我们定义数组 cc美丽度为其所有可能分割方式中最大的美丽度

给定一个长度为 nn 的整数数组 aa

你需要处理 qq 个查询,查询分为两种类型:

  1. 计算由元素 [al,al+1,,ar][a_{l}, a_{l+1}, \ldots, a_r] 组成的数组的美丽度,其中 (l,r)(l, r) 是查询参数;
  2. 将元素 axa_x 替换为 vv,其中 (x,v)(x, v) 是查询参数。

输入格式

输入的第一行包含两个整数 nnqq (1n,q106)(1 \le n, q \le 10^6),分别表示数组 aa 的长度和查询的数量。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n (109ai109)(-10^9 \le a_i \le 10^9),表示数组 aa 的元素。

接下来的 qq 行,每行包含三个整数。第一个数字 typeitype_i (1typei2)(1 \le type_i \le 2) 表示查询类型。第一类查询格式为 1 l r (1lrn)(1 \le l \le r \le n),第二类查询格式为 2 x v (1xn,109v109)(1 \le x \le n, -10^9 \le v \le 10^9)

输出格式

对于每个第一类查询,单独输出一行一个整数,表示对应数组的美丽度

样例 1

输入

6 4
1 -3 4 2 -5 6
1 1 6
1 2 3
1 2 5
1 1 1

输出

5
3
3
1

在第一个样例的第三个查询中,数组 [3,4,2,5][-3, 4, 2, -5] 的最大美丽度在分割为 [3],[4,2],[5][-3], [4, 2], [-5] 时达到。

样例 2

输入

5 6
1 -2 3 -4 5
1 1 4
1 2 3
2 3 -6
1 2 4
2 4 2
1 1 5

输出

2
2
12
7

在第二个样例的第一个查询中,数组 [1,2,3,4][1, -2, 3, -4] 的最大美丽度在分割为 [1,2,3],[4][1, -2, 3], [-4] 时达到。

数据范围与提示

详细子任务附加限制及分值如下表所示:

子任务 分值 附加限制
11 44 typei=1type_i = 1(对于 1iq1 \le i \le q);ai>0a_i > 0(对于 1in1 \le i \le n
22 1414 typei=1type_i = 1(对于 1iq1 \le i \le q);n,q1000n, q \le 1000
33 1010 typei=1type_i = 1(对于 1iq1 \le i \le q);n,q2105n, q \le 2 \cdot 10^5,对于每个查询存在一个最优分割不超过 22 个子数组
44 1010 typei=1type_i = 1(对于 1iq1 \le i \le q);qn2105q \le n \le 2 \cdot 10^5li=1l_i = 1, ri=ir_i = i(对于 1iq1 \le i \le q
55 1111 typei=1type_i = 1(对于 1iq1 \le i \le q);n,q2105n, q \le 2 \cdot 10^55j=1iaj5-5 \le \sum\limits_{j=1}^{i} a_j \le 5(对于 1in1 \le i \le n
66 1818 typei=1type_i = 1(对于 1iq1 \le i \le q);n,q2105n, q \le 2 \cdot 10^5
77 99 typei=1type_i = 1(对于 1iq1 \le i \le q
88 1616 n,q2105n, q \le 2 \cdot 10^5
99 88 无附加限制