我经常(好吧,一年几次)遇到问题,这是背包问题的特殊情况,如下:
给定一组整数S和n个麻袋,找到最小的整数N,使得S可以被分成n组S1,S2,...,Sn,使得每个的乘积最多为N.
(给出下限,上限和估计的变量也很有趣,但确切的值是主要的兴趣。)
到目前为止,每次出现这种情况我都会编写自己的代码,根据具体情况进行定制。但是有很多人知道背包问题和类似问题(垃圾箱包装等),我确信现有的代码可以比我正在做的更好地处理这类问题。或者,至少应该有一个很好的算法来有效地做到这一点,这应该比我在当下激励时做的更好。想法?