Это скорее ответ на вопрос, почему уникальность сумм так сильно влияет на размер, что случай для $52485332$ становится тривиальным (это слишком долго для комментария).
Когда все суммы должны быть уникальными, они должны давать разные целые числа.
Потому что есть $500^{1000}$ возможные суммы, есть также $500^{1000}$ различные целые результаты для этого. в самом нижнем случае будут все целые числа из $0$ к $500^{1000}-1$.
Например,
$S_1 = \{0, 1, 2,..., 499\}$
$S_2 = \{0, 500, 1000,..., 249500\}$
$S_3 = \{0, 250000, 500000, ..., 124750000\}$
...
$S_{1000} = \{0, 500^{999}, 2*500^{999}, ..., 499*500^{999}\}$
способ гарантировать уникальность результата. Как видите, Числа становятся действительно большими очень быстро.
В этом конкретном примере легко найти результат (просто всегда выбирайте наибольшее число, которое подходит от последнего к первому набору). Даже большинство чисел $S_3$ больше, чем $52485332$ и поэтому может быть проигнорировано.
Вероятно, вам нужны относительно случайные значения в ваших наборах. В этом случае диапазон значений должен быть хотя бы немного больше.
Однако крайне маловероятно, что какое-либо значение ниже или равно $52485332$ (когда вы равномерно выбираете $500000$ значения из $500^{1000}$)
Динамическое программирование, как предложил @poncho, действительно работает только для небольших чисел, и его производительность не намного лучше, чем полный поиск (линейная разница в количестве наборов), потому что подсуммы, которые можно повторно использовать, уникальны, преимущество не смотреть на другие возможности не существует.
Время выполнения должно быть в том же порядке, что и полный поиск. Единственное улучшение заключается в том, чтобы принять решение, когда значения слишком велики или малы для достижения цели, но для разумных целей это не является большим преимуществом.
Он может легко свести задачу о сумме подмножеств или задачу о рюкзаке к этой, просто используя один и тот же набор столько раз, сколько нужно суммировать.Проблема в том, что это не полиномиальное сокращение времени, поэтому его недостаточно для доказательства, если проблема NP-сложная.