给定一个非递减序列a1,a2,…,an(对于序列中的所有元素,ai≥ai−1都成立)和一个正整数k。
你被要求将该序列划分成k个连续的非空子序列。请注意,原序列中的每个元素都应该包含在一个子序列中且只能在一个子序列中。
令max(i)为第i个子序列中所有元素的最大值,min(i)为第i个子序中所有元素的最小值。定义划分的代价为:s=(max(1)-min(1))+(max(2)-min(2))+...... +(max(k)-min(k)),即总代价为k个子序列中最大值-最小值之和。例如,如果a=[2,4,5,5,8,11,19],我们可以将它分成以下3个子序列:[2,4],[5,5],[8,11,19],那么划分的代价等于:(4−2)+(5−5)+(19−8)=13。显然,划分方法有很多种,代价也不同。
现给定一个非递减序列a和一个整数k,请计算将序列a划分成k个连续的非空子序列所能获得的最小代价。