#P3016. <i>K</i>-Monotonic

    ID: 2017 传统题 1000ms 256MiB 尝试: 9 已通过: 1 难度: 10 上传者: 标签>动态规划贪心POJ Monthly--2006.09.29ACRushmodified from TopCoder SRM 309 KMonotonic

<i>K</i>-Monotonic

题目描述

一个整数序列如果每一项都严格大于前一项,则称为严格单调递增序列。类似地,如果每一项都严格小于前一项,则称为严格单调递减序列。严格单调序列是指要么严格单调递增,要么严格单调递减的序列。一个整数序列被称为kk-单调的,如果它可以被分解为kk个不相交的连续子序列,且每个子序列都是严格单调的。

例如,严格单调递增序列是11-单调的——实际上,对于11到序列元素个数之间的任意kk,它都是kk-单调的。序列{1,2,3,2,1}\{1, 2, 3, 2, 1\}22-单调的,因为它可以被分解为{1,2,3}\{1, 2, 3\}{2,1}\{2, 1\}

如果一个序列不是kk-单调的,你可以通过执行以下操作一次或多次来将其转换为kk-单调序列:选择序列中的任意一项,并将其增加或减少11。你可以对任意项执行任意次数的此类操作。给定一个数字序列A1,A2,,AnA_1, A_2, \ldots, A_n和一个整数kk,你需要计算将给定序列转换为kk-单调序列所需的最小操作次数。

输入格式

输入包含多个测试用例。

每个测试用例由两行组成。第一行给出整数nn1n10001 \leq n \leq 1000)和kk1kmin{n,10}1 \leq k \leq \min\{n, 10\})。第二行给出整数A1,A2,,AnA_1, A_2, \ldots, A_n100000Ai100000-100\,000 \leq A_i \leq 100\,000)。

输入以两个00表示结束,且不应处理。

输出格式

每个测试用例的答案单独占一行。

输入样例 1

4 1
1 1 1 1
4 2
1 1 1 1
4 4
1 1 1 1
6 1
1 2 3 3 2 1
0 0

输出样例 1

4
2
0
9

题目来源

POJ Monthly--2006.09.29, ACRush, 改编自TopCoder SRM 309 KMonotonic