[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. Запити красот підмасивів
我们称一个长度为 m 的整数数组 b 的权重为其元素之和的绝对值,即 ∣b1+b2+…+bm∣。
我们定义数组 c 分割成若干子数组的美丽度为所有子数组权重中的最小值。形式上,数组 c 分割成 k 个子数组 $[c_1, \ldots, c_{p_1}], [c_{p_1+1}, \ldots, c_{p_2}], \ldots, [c_{p_{k-1}+1}, \ldots, c_{p_k}]$(其中 1≤p1<p2<…<pk−1<pk=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] 的美丽度为 $\min(|3 + (-6)|, |4|, |5 + (-8)|) = \min(3, 4, 3) = 3$。
我们定义数组 c 的美丽度为其所有可能分割方式中最大的美丽度。
给定一个长度为 n 的整数数组 a。
你需要处理 q 个查询,查询分为两种类型:
- 计算由元素 [al,al+1,…,ar] 组成的数组的美丽度,其中 (l,r) 是查询参数;
- 将元素 ax 替换为 v,其中 (x,v) 是查询参数。
输入格式
输入的第一行包含两个整数 n 和 q (1≤n,q≤106),分别表示数组 a 的长度和查询的数量。
第二行包含 n 个整数 a1,a2,…,an (−109≤ai≤109),表示数组 a 的元素。
接下来的 q 行,每行包含三个整数。第一个数字 typei (1≤typei≤2) 表示查询类型。第一类查询格式为 1 l r (1≤l≤r≤n),第二类查询格式为 2 x v (1≤x≤n,−109≤v≤109)。
输出格式
对于每个第一类查询,单独输出一行一个整数,表示对应数组的美丽度。
样例 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] 时达到。
样例 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 |
4 |
typei=1(对于 1≤i≤q);ai>0(对于 1≤i≤n) |
| 2 |
14 |
typei=1(对于 1≤i≤q);n,q≤1000 |
| 3 |
10 |
typei=1(对于 1≤i≤q);n,q≤2⋅105,对于每个查询存在一个最优分割不超过 2 个子数组 |
| 4 |
10 |
typei=1(对于 1≤i≤q);q≤n≤2⋅105,li=1, ri=i(对于 1≤i≤q) |
| 5 |
11 |
typei=1(对于 1≤i≤q);n,q≤2⋅105,−5≤j=1∑iaj≤5(对于 1≤i≤n) |
| 6 |
18 |
typei=1(对于 1≤i≤q);n,q≤2⋅105 |
| 7 |
9 |
typei=1(对于 1≤i≤q) |
| 8 |
16 |
n,q≤2⋅105 |
| 9 |
8 |
无附加限制 |