#C09L11P05. C09.L11.二维dp.练习3.马棚问题

C09.L11.二维dp.练习3.马棚问题

题目描述

每天,小明和他的马外出,然后他们一边跑一边玩耍。当他们结束的时候,必须带所有的马返回马棚,小明有 KK 个马棚。他把他的马排成一排然后跟随它走向马棚,因为它们非常疲劳,小明不想让他的马做过多移动。因此他想了一个方法:将马按照顺序放在马棚中,后面的马放的马棚的序号不会大于前面的马放的马棚序号。而且,他不想他的 KK 个马棚中任何一个空置,也不想任何一匹马在外面。

已知共有黑、白两种马,而且它们相处的并不十分融洽。如果有 ii 个白马和 jj 个黑马在一个马棚中,那么这个马棚的不愉快系数将是 i×ji \times j 。所有 KK 个马棚的不愉快系数的和就是系数总和。确定一种方法把 nn 匹马放入 KK 个马棚,使得系数总和最小。

输入格式

在第一行有两个数字:NN ( 1N5001 \le N \le 500 ) 和 KK ( 1KN1 \le K \le N )。

在接下来 NN 行,每行 1 个数。在这些行中的第 ii 行代表队列中的第 ii 匹马的颜色:1 意味着马是黑色,0 意味着马是白色。

输出格式

一个整数,代表系数总和可能达到的最小值。

样例

6 3
1
1
0
1
0
1
2

样例解释

6 匹马,3 个马棚,第 1、2、4、6、匹马为黑马,第 3 、5匹马是白马。