给定一个非负正整数数组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和正整数k的分割问题,目标是使各部分和的最大值尽可能小,时间复杂度优化至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)

1123
3万+
1381
270

被折叠的 条评论
为什么被折叠?