Динамика по подмножествам, по профилю (30 ноября 2016)
- Динамика по подотрезкам
- Сводим задачу к меньшим такого же вида
- Динамика тоже описывается графом, но не является напрямую задачей поиска пути на этом графе
- Задача: покрасить вершины графа в минимальное число цветов
- Предподсчет good[A] за O(2nn2). Решение за O(4n).
- Перебор всех надмножеств всех множеств за O(3n)
- Перебор всех подмножеств всех множеств за O(3n)
- [на практику] замена O(2nn2) на O(2n) (good[] - динамика).
- Алгоритм перебора всех максимальных по включению за 3n/3 = 1.44n
- Покраска вершин, описание решения за O(2.44n).
- Задачи на подмножествах
- Рюкзак (Set Cover: покрыть множество {0,1,...,n-1} минимальным числом множеств из набора A1,...,Am
- Перевёрнутая битовая запись числа
− Перерыв −
- Meet-In-The-Middle
- Решение задачи о рюкзаке за 2n/2n
- Решение задачи о поиске максимальной клики за 2n/2
- Хиршберг − тоже Meet-In-The-Middle
- DP и скошенный профиль через рекурсию (задача про доминошки)
- Перебор за O(2wh/2)
- Запоминание → получили динамику → доказали число состояний O(2min(w,h)wh)
- Как кодировать матрицу? Матрица → одномерный массив → число → хеш