1090: dp

内存限制:512 MB 时间限制:3.000 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:1 通过:1

题目描述

LYK在学习dp,有一天它看到了一道关于dp的题目。

这个题目是这个样子的:一开始有n个数,一段区间的价值为这段区间相同的数的对数。我们想把这n个数切成恰好k段区间。之后这n个数的价值为这k段区间的价值和。我们想让最终这n个数的价值和尽可能少。

例如6个数1,1,2,2,3,3要切成3段,一个好方法是切成[1],[1,2],[2,3,3],这样只有第三个区间有1的价值。因此这6个数的价值为1

LYK并不会做,丢给了你。

输入格式

第一行两个数n,k

       接下来一行n个数ai表示这n个数。

输出格式

一个数表示答案。 

输入样例 复制

10 2
1 2 1 2 1 2 1 2 1 2

输出样例 复制

8

数据范围与提示

对于30%的数据n<=10

对于60%的数据n<=1000

对于100%的数据1<=n<=100000,1<=k<=min(n,20),1<=ai<=n

其中有30%的数据满足ai完全相同均匀分布在所有数据中。

分类标签