相关问题:
假设我有一个列表,其中包含正好2k
个元素。现在,我愿意将它分成两部分,每部分的长度为k
,同时尽量使部分的总和尽可能相等。
快速举例:
[3, 4, 4, 1, 2, 1]
可能会被分为[1, 4, 3] and [1, 2, 4]
,差额将为1
现在 - 如果部件可以有任意长度,这是Partition problem的变体,我们知道它是弱的NP-Complete.
但是将列表分成等份(让我们说它总是
k
和2k
)的限制是否会使这个问题在多项式时间内得到解决?任何证明(或证明它仍然是NP
)的证据计划?
答案 0 :(得分:4)
仍然NP
完成。通过将PP
(您的分区问题的完整变体)减少到QPP
(等分区问题)来证明:
获取长度为k
的其他k
元素的任意列表,所有元素均为零。
我们需要根据PP
找到性能最佳的分区。让我们找到一个使用QPP
的算法,并忘记所有额外的k
零元素。向左移动零不会影响此分区或任何竞争分区,因此这仍然是长度为k
的任意列表中性能最佳的无限制分区之一。