给定一个非负正整数数组S={s1, s2, s3, …, sn},和一个正整数k。要求把S分割成k个部分,使得每个部分的和的最大值是最小的。
例如,S={2,2,3,4},k=3. 那么应该分成{2,2},{3},{4}.
这个问题转自:http://www8.cs.umu.se/kurser/TDBAfl/VT06/algorithms/BOOK/BOOK2/NODE45.HTM
解法采用动态规划,利用前缀数组,可以把复杂度优化到O(k*n^2)
给定一个非负正整数数组S={s1, s2, s3, …, sn},和一个正整数k。要求把S分割成k个部分,使得每个部分的和的最大值是最小的。
例如,S={2,2,3,4},k=3. 那么应该分成{2,2},{3},{4}.
这个问题转自:http://www8.cs.umu.se/kurser/TDBAfl/VT06/algorithms/BOOK/BOOK2/NODE45.HTM
解法采用动态规划,利用前缀数组,可以把复杂度优化到O(k*n^2)