我正在研究DP,当我阅读Balanced Partition算法时,我遇到了这个问题。在这个算法中,我们可以将列表分成两个列表,这些列表的元素总和是相等的。但是如果我需要K列表并且我需要它们有一个最小的总和呢?我想过修改Balanced Partition算法来解决这个问题,但实际上我看不到这样做的方法。
设S为{1,1,5},K = 2的最优解为{1,1},{5}。
任何提示? 提前谢谢。
答案 0 :(得分:0)
一个简单的算法是:
sort S in descending order
for each element in S:
put it into the partition with the smallest sum
这会将5
放入第一个分区,1
放入示例中的第二个分区(K = 2)。