给定具有ar
元素的数组n
,找到可被K
整除的数组中的最大总和。总和中使用的元素不必是连续的。
示例:对于N = 4
和ar = [2,2,1,2]
以及K = 3
,答案为6(包括元素2,2和2)。
答案 0 :(得分:3)
这只是subset sum问题。
让dp[i] = true if we can build sum i and false otherwise
。
dp[0] = true
s = 0
for each number x in the array:
s += x
for j = s down to x
dp[j] = dp[j] OR dp[j - x]
然后找到最大的j <= s
,j % k == 0
和dp[j] == true
。