题目描述
译自 ROI Regional 2025 Day2 T2. Перекошенное разбиение
给定一个由非负整数组成的数组 [a1,a2,…,an]。
考虑将该数组划分为连续的 k 个非空子段。
我们将一个划分的不平衡度定义为这些子段中最大子段和与最小子段和的差值。
你的任务是找到将该数组划分为 k 个子段的最大不平衡度。
例如,如果数组为 [2,1,3,4]:
- 划分为 [2,1,3][4] 时,不平衡度为 6−4=2;
- 划分为 [2,1][3,4] 时,不平衡度为 7−3=4;
- 划分为 [2][1,3,4] 时,不平衡度为 8−2=6。
最后一种划分是在将数组划分为两个非空子段时的不平衡度最大值。
输入格式
第一行包含两个整数 n 和 k (2≤k≤n≤300000),分别表示数组的长度和子段的数量。
第二行包含 n 个整数 ai (0≤ai≤109),表示数组的元素。
输出格式
输出一个整数,表示将该数组划分为 k 个子段的最大不平衡度。
4 2
2 1 3 4
6
第一个样例已在题目描述中进行了详细解释。
5 4
2 1 3 4 1
6
第二个样例中,最优的划分是 [2][1][3,4][1]。在这个划分中,子段的最大和为 3+4=7,最小和为 1,因此不平衡度为 6。
数据范围与提示
详细子任务附加限制及分值如下表所示。
| 子任务 |
分值 |
附加限制 |
子任务依赖 |
| 1 |
11 |
n≤15 |
|
| 2 |
11 |
k=2 |
| 3 |
21 |
k=3 |
| 4 |
15 |
n≤300 |
1 |
| 5 |
21 |
n≤3000 |
1, 4 |
| 6 |
21 |
无附加限制 |
1∼5 |