4-5 The Man who became a God

4-5 The Man who became a God

The Man who became a God

链接:https://codeforces.com/contest/1847/problem/A
来源:codeforces

时间限制:1 seconds
空间限制:256 megabytes

题目描述

卡尔斯对他的村庄的狭隘心态感到厌倦和不满,因为他们只满足于呆在原地,没有努力成为完美的生命体。作为一个顶级的发明家,卡尔斯希望增强自己的身体,成为完美的生命体。不幸的是,nn个村民已经对他的想法产生了怀疑。第ii个村民对他产生了第aia_i个猜疑。每个村民都对卡尔斯感到害怕,所以他们组成了团体,以便更有力量。

llrr的村民组的权力被定义为f(l,r)f(l,r),其中
f(l,r)=alal+1+al+1al+2++ar1ar. f(l,r) = |a_l - a_{l+1}| + |a_{l + 1} - a_{l + 2}| + \ldots + |a_{r-1} - a_r|.
这里xy|x-y|xyx-y的绝对值。一个只有一个村民的小组,其权力为00

卡尔斯想把村民分成恰好kk个相邻的子组,使他们的力量之和最小。形式上,他必须找到k1k - 1个正整数1r1<r2<<rk1<n1 \le r_1 < r_2 < \ldots < r_{k - 1} < n,使f(1,r1)+f(r1+1,r2)++f(rk1+1,n)f(1, r_1) + f(r_1 + 1, r_2) + \ldots + f(r_{k-1} + 1, n)最小。帮助卡尔斯找到f(1,r1)+f(r1+1,r2)++f(rk1+1,n)f(1, r_1) + f(r_1 + 1, r_2) + \ldots + f(r_{k-1} + 1, n)的最小值。

输入

第一行包含一个单一的整数tt(1t100)(1 \leq t \leq 100)--测试案例的数量。测试用例的描述如下。

每个测试案例的第一行包含两个整数n,kn,k(1kn1001≤k≤n≤100)--村民的数量和他们必须分成的小组的数量。

每个测试案例的第二行包含nn个整数a1,a2,,ana_1,a_2, \ldots, a_n(1ai500)(1 \leq a_i \leq 500)--每个村民的猜测。

输出

对于每个测试案例,输出一个整数--所有组的功率之和的最小可能值,即f(1,r1)+f(r1+1,r2)++f(rk1+1,n)f(1,r_1) + f(r_1 + 1, r_2) + \ldots + f(r_{k-1} + 1, n)的最小可能值。

样例

输入样例

3
4 2
1 3 5 2
6 3
1 9 12 4 7 2
12 8
1 9 8 2 3 3 1 8 7 7 9 2

输出样例

4
11
2

样例解释

在第一个测试案例中,我们将把有怀疑的村民(1,3,5,2)(1,3,5,2)分组为(1,3,5)(1,3,5)(2)(2)。所以,f(1,3)+f(4,4)=(13+35)+0=4+0=4f(1,3) + f(4,4) = (|1 - 3| + |3 - 5|) + 0 = 4 + 0 = 4

在第二个测试案例中,我们将把有怀疑的村民(1,9,12,4,7,2)(1,9,12,4,7,2)分组为(1),(9,12),(4,7,2)(1),(9,12),(4,7,2)。所以,f(1,1)+f(2,3)+f(4,6)=0+3+8=11f(1,1) + f(2,3) + f(4,6) = 0 + 3 + 8 = 11

信息

ID
1459
难度
8
分类
(无)
标签
(无)
递交数
10
已通过
9
通过率
90%
上传者

相关