bzoj#P1446. Monotonic

Monotonic

题目描述

给定一个长度为 nn 的序列 c1nc_{1\cdots n},我们称 cc 的单调序列就是把它改成一个严格单调递增的序列 d1n,i[1,n)di>di+1d_{1\cdots n},\forall i\in[1,n)\wedge d_i>d_{i+1},同时我们定义它的代价就是 i=1ncidi\sum_{i=1}^n |c_i-d_i|

这个问题你是不是看得非常眼熟呢? 下面请考虑这个问题的加强版吧。

请你把这个长度为 nn 的序列分成 mm 段,其中要求将每段改成一个单调序列,同时要求代价和最小.比如说 1,2,3,2,11,2,3,2,1 就是一个满足要求 22 段单调序列 (1,2,3),(2,1)(1,2,3),(2,1),而将 1,1,1,11,1,1,1 改成 22 段单调序列的最优的方案就是 (1,2),(2,1)(1,2),(2,1),它的代价就是 22

输入格式

第一行两个整数 n,mn,m

接下来依次给出 nn 个数 c1nc_{1\cdots n}

输出格式

一个数,即最小的代价和。

6 1
1
2
3
3
2
1
9

数据规模与约定

对于 30%30\% 的数据,1n1001\leq n\leq 100

另外 20%20\% 的数据,m=1m=1

对于 100%100\% 的数据,1n2×1031\leq n\leq 2\times 10^31mmin{n,10}1\leq m\leq \min\{n,10\}ci104c_i\leq 10^4