这是另一个动态规划问题,关于3-Partition(Vazirani第6章)
考虑以下3-Partition问题。给定整数a1 ... an, 我们想要确定是否可能将{1 ... n}分成三个不相交的子集I,J,K, 使得
sum(I) = sum(J) = sum(K) = 1/3 * sum(ALL)
例如,对于输入(1;2;3;4;4;5;8),答案是肯定的,因为存在分区(1;8),(4;5),(2;3;4)。 另一方面,对于输入(2;2;3;5),答案是否定的。设计并分析一个运行时间多项式为n和(Sum a_i)的3-Partition动态规划算法。
我该如何解决这个问题?我知道2-partition,但还是无法解决它