Поиск лучшего подмножества

Общая идея

Работает ДП (более подробно о ДП написано во второй теме). Подумать приходится только над тем, как бы выделить дополнительное измерение так, чтобы оно помогало делать множество удовлетворяющим условию.

Задача 2481

Условие

Дана последовательность из N целых чисел. Рассматриваются все её подмножества, такие что сумма элементов кратна 17. Найдите наибольшую сумму такого подмножества.

Разбор

Применим идею ДП. dp[i][j] храниит максимальную сумму, если рассмотрели префикс i, j - остаток набранной суммы по модулю 17.

Каждый новый элемент мы либо берем(первый переход). Либо не берем(второй переход).

!Важно правильно проинициализировать стартовые значения. Сумма пустого подмножества 0. Остальные состояния не существуют, поэтому в них -inf

Код


        

        

Похожие задачи: 2948, 1258