Я полагаю, что решить эту проблему с помощью DP или чего-либо еще проще, чем решить предыдущую.

проблема помеченный какдинамическое программирование (Учитывая число N, найдите количество способов записать его как сумму двух или более последовательных целых чисел) и пример 15 = 7 + 8, 1 + 2 + 3 + 4 + 5, 4 + 5 + 6

Я решил с математикой так:

a + (a + 1) + (a + 2) + (a + 3) + ... + (a + k) = N

(k + 1) * a + (1 + 2 + 3 + ... + k) = N

(к + 1)а + к(k + 1) / 2 = N

(k + 1) * (2 * a + k) / 2 = N

Затем проверьте, что если N делится на (k + 1) и (2 * a + k), то я могу найти ответ за время O (sqrt (N))

Вот мой вопрос, как вы можете решить этодинамическое программирование ? а в чем сложность (о)?

П.С .: извините, если это дублирующий вопрос. Я искал, но я могу найти

Ответы на вопрос(0)

Ваш ответ на вопрос