首先对数组排序,然后将最大的数放入负数组,然后将第二大的数放入正数组。将一个最大数设置为正数,直到它们的总和大于零。现在设置另一个负数。重复此操作,直到设置为5负数为止。这是贪婪算法。看来您的问题是np完全的,看起来像AST问题,但是问题的大小限制为10,因此您可以通过蛮力搜索解决它,只需检查C(10,5)<10
^ 5可能性对于当今的PC,这个数字很小。
此外,如果能够选择的套不同大小,你的问题是一样的子集和问题可以在伪多项式时间内解决看它:1,2。

首先对数组排序,然后将最大的数放入负数组,然后将第二大的数放入正数组。将一个最大数设置为正数,直到它们的总和大于零。现在设置另一个负数。重复此操作,直到设置为5负数为止。这是贪婪算法。看来您的问题是np完全的,看起来像AST问题,但是问题的大小限制为10,因此您可以通过蛮力搜索解决它,只需检查C(10,5)<10
^ 5可能性对于当今的PC,这个数字很小。
此外,如果能够选择的套不同大小,你的问题是一样的子集和问题可以在伪多项式时间内解决看它:1,2。