Перебор (5 ноября 2024)
- Перебор всех перестановок для задачи ∑aibi → max
- next_permutation, do..while
- рекурсия за n!*n
- преимущества над next_permutation: решгаем
- рекурсия за n!
- Усложнение: чтобы соседние элементы отличались хотя бы на два
- Рюкзак
- Рюкзак без стоимостей, subsetsum, O(2n)
- Запоминание O(n*S)
- Рюкзак со стоимостями, knapsack (ограбление банка), O(2n)
- Смотреть в прошлое, в будущее, возвращать инфу про будущее, O(n*S)
- Задача о коммивояжере (развозка пиццы). n! → 2n*n2 (map pair int, vector int)
- Задача о разбиении на слагаемые
- Сам перебор. За сколько работает? O(Ответа), 2sqrt(n)
- Запоминание на уровне n3.
- Задача о замощение доминошками (2w * w)
- Перебор за 2wh/2
- Добавляем map vector vector int → int
- Оцениваем как 2wwh
- Задача про расселение студентов (м/д; 1/2/3/4курс; пожелания)
- Упрощение (жадность): забить на все сложные, мальчиков подряд, девочек подряд
- Жадность + локальные оптимизации (свопаем, пока улучшается)
- Перебор за n! (связь с перебором перестановок)
- Более умный перебор
- Жадность + перебор