2015-09-25 101 views
1

我正在學習DP,並且在閱讀平衡分區算法時遇到了這個問題。在這個算法中,我們可以將列表分成兩個列表,這些列表的元素總和相等。但是如果我需要K列表並且我需要他們有一個最小的總和呢?我想修改平衡分區算法來解決這個問題,但我實際上沒有辦法做到這一點。設S爲{1,1,5},K = 2的最優解爲{1,1},{5}。如何將一個集合劃分爲K個子集,這樣子集中元素的總和最小?

任何提示? 在此先感謝。

+0

也許我錯過了一些東西,但不是'{1,1} = 2'和總和{5} = 5',因此不等於? –

+0

@SethKitchen你已經使用了5次兩次。 –

+0

也不能包含重複項,因此該示例無效。 –

回答

0

一個簡單的算法將是:

sort S in descending order 
for each element in S: 
    put it into the partition with the smallest sum 

這將使5到第一分區和所述1 s轉換在你的例子(K = 2)的第二個分區。

相關問題