Максимизация количества различных чисел, которые производят данную сумму 'k'

Мне нужна помощь с этой проблемой динамического программирования.

Учитывая положительное целое число k, найдите максимальное количество различных положительных целых чисел, которые суммируются с k. Например, 6 = 1 + 2 + 3, поэтому ответом будет 3, а не 5 + 1 или 4 + 2, равным 2.

Первое, о чем я думаю, это то, что мне нужно найти подзадачу. Таким образом, чтобы найти максимальную сумму для k, нам нужно найти максимальную сумму для значений, меньших k. Поэтому нам нужно перебрать значения 1 -> k и найти максимальную сумму для этих значений.

1111 Что меня смущает, так это как сделать формулу. Мы можем определить M(j) как максимальное количество различных значений, которые суммируются с j, но как мне на самом деле написать формулу для него?

Является ли моя логика для того, что я до сих пор, правильной, и могу ли Кто-нибудь объяснит, как пройти этот шаг за шагом?

8
задан cst1992 9 May 2016 в 10:48
поделиться