Школа179: Denis Kirienko/ДинамическоеПрограммирование
 

Динамическое программирование

План лекции

Вспоминаем, что такое динамика. Когда нужна, а когда не нужна динамика.
Основные применения динамики:
  1. Подсчет количества объектов. Пример: числа Каталана.
  2. Нахождение минимального (максимального) решения. Пример: задача «Банкомат».
  3. Позиционные игры. Пример: задача «Ферзя в угол» или «Игра с датами».
Задача «Ход конем».
Задача «восстановление скобок».
Задача рюкзака и частный случай выбора камней заданной массы.
Задача умножения большого числа матриц.
Задача оптимальной триангуляции многоугольника.
Задача нахождения наибольшей общей подпоследовательности.
Задача «Два шаблона».

Что еще хочется (чего я пока не знаю)? Динамику на нелинейном множестве (например, динамику на графе, но интересную и нетривиальную) и динамику по >2 параметрам.

Список задач, которые можно рассмотреть


1. Умножение матриц. // Кормен, Шень.
2. Наибольшая возрастающая последовательность
3. Набольшая общая подпоследовательность. // Кормен
4. Оптимальная триангуляция многоугольника. // Кормен, Шень.
5. Битоническая задача коммивояжера. // Кормен
6. Минимальная стоимость проезда по ж/д в одну сторону // Шень
7. Рюкзак
8. Рюкзак с множеством предметов одного вида // Окулов
9. Восстановление скобок // Особенности...
10. Ход конем // Особенности...
11. Два шаблона (min строка, удовлетворяющая обоим шаблонам) // Особенности...
12. Жадный калькулятор (расставить скобки так, чтобы значение было максимальным) // Особенности...
13. Банкомат (набрать заданную сумму минимальным числом монет)
14. Максимальная интервальная сумма.

Литература

1. А. Шень. Программирование: теоремы и задачи.
2. Т.Кормен, Ч.Лейзерсон, Р.Ривест. Алгоритмы: построение и анализ.
3. В.Беров, А.Лапунов, В.Матюхин, А.Пономарев. Особенности национальных задач по информатике.
4. С.Скиена, М.Ревилла. Олимпиадные задачи по программированию. Руководство по подготовке к соревнованиям.
5. С.Окулов. Программирование в алгоритмах.
6. Ф.Меньшиков. Олимпиадные задачи по программированию.