Динамическое программирование – это мощный метод оптимизации, который применяется для решения задач, обладающих свойствами оптимальной подструктуры и перекрывающимися подзадачами. Задача: Дана последовательность чисел. Найти длину наибольшей возрастающей подпоследовательности. Решение: Псевдокод: for i in range(1, n):
for j...
Очень классная задача на динамическое программирование, в которой надо ещё придумать, как быстро посчитать результат. Читаем условие: Идея динамического программирования лежит на поверхности - чтобы вычислить стоимость для N надо знать стоимость для S и N - S (и правильно распределить, к чему прибавить 1, а к чему - 2). Получаем одномерную динамику - ответ зависит лишь от количества элементов в множестве. База динамики: для 1 ответ 0. Если загаданное число среди одного, то не надо задавать вопросов, чтобы узнать, что это за число...