Я получил X двоичных чисел длины Y и хочу посмотреть, составляют ли они определенную сумму K.
Я провел небольшое исследование динамических решений для задач с суммой подмножеств; однако я думаю, что эта конкретная проблема представляет собой поворот.
Добавление двух двоичных чисел длиной Y и ограничение длины суммы до Y иногда приводит к вычитанию 2^(Y) из суммы (при переполнении). Поскольку добавление двух двоичных чисел иногда вызывает переполнение, например, добавление:
10000000000000000000000000000000000000010
10000000000000000000000000000000000000010
Принесет сумму
00000000000000000000000000000000000000100
Поэтому в некоторых случаях добавление чисел фактически уменьшит текущую сумму.
В данный момент я бьюсь головой о стену. Любые советы или указатели, как атаковать эту конкретную версию проблемы суммы подмножества?
ОБНОВИТЬ:
Нет никаких реальных ограничений на то, что я могу использовать. Моя единственная цель - создать максимально быстрое время выполнения с ~ 50 двоичными числами длиной ~ 40.