Я пытаюсь обобщить алгоритм Пол Ханкин, представленный в Maximizing the overall sum of K disjoint and contiguous subsets of size L among N positive numbers, так что решение не ограничено, чтобы каждое подмножество было точно размером L и где Цель состоит не в том, чтобы максимизировать общую сумму, а в том, чтобы вернуть множество с наибольшими возможными подмножествами.Возвратите самые большие непересекающиеся и непрерывные подмножества от 1 до L среди N положительных чисел
изложив подробности, X
представляет собой набор N
положительных действительных чисел: X={x[1],x[2],...x[N]} where x[j]>=0 for all j=1,...,N
.
Непрерывного подмножество называется S[i]
состоит из доL
последовательных членов X
, начиная с позицией n[i]
и заканчивающихся в положении n[i]+l-1
:
S[i] = {x[j] | j=n[i],n[i]+1,...,n[i]+l-1} = {x[n[i]],x[n[i]+1],...,x[n[i]+l-1]}, where l=1,...,L
.
Два таких подмножества S[i]
и S[j]
называются попарно непересекающимися (неперекрывающимися), если они не содержат одинаковых элементов X
.
Определить суммирование членов каждой подгруппы:
SUM[i] = x[n[i]]+x[n[i]+1]+...+x[n[i]+l-1]
Цель найти смежные и не пересекается (не перекрывающийся) подмножествами S[1],S[2],...
длин в пределах от 1 to L
, которые как можно больше и крышек все N
элементы X
.
Например, учитывая X = {5,6,7,100,100,7,8,5,4,4}
и L = 4
, решение S[1] = {5,6,7}, S[2] = {100, 100, 7, 8}, and S[3] = {5,4,4}
таким образом, что SUM[1] = 18, SUM[2] = 215, and SUM[3] = 13
. Хотя общая сумма, независимо от подмножества, всегда будет 246
, ключ заключается в том, что никакие другие подмножества с длиной от 1 to L
не будут производить больше SUM[i]
, чем те, которые указаны выше.
Любая помощь очень ценится.
Вот лучшее решение: – bm5tev3