Бонусные лекции
- convex hull trick + Лямбда-оптимизация
- CHT
- Задача про квадраты и сумму площадей, решение динамикой за O(n2)
- Раскрываем переход, видим добавляющиеся отсортированные по углу прямые, верхнюю огибающую
- Добавление прямой: стек, поиск maxY(x) = бинпоиск или второй указатель
- Лямбда-оптимизация
- Задача, алгоритм. Хотим ровно k квадратов. Имеем только f = maxk f(k), но можём f' = maxk (f(k) + λ k), бинпоиск по λ
- Выпуклая f(k). Касательные. Корректность.
- Источники выпуклых функций: всё, что сводится к паросочетанию или mincost потоку.
- Динамика по сложному состоянию
- Юнг
- Изоморфизм деревьев
- map : vector → int
- хеши → бор → за O(n) без хешей
- Динамика по профилю, изломаному профилю: доминошки и рекурсия (будет на общей лекции!)
- Жуткому профилю: дедекаэдр, грид-тор, кубик с гранями-гридами... Построим граф =)
- Формула включения-исключения
- Посчитать кол-во чисел от 1 до 109
- Которые не делятся ни на одно из p1, p2, ... pn
- Которые не делятся ни на одно из a1, a2, ... an
- Взаимнопросты с m
- Посчитать число путей из (1,1) в (n,n) вправо-вверх (n ≤ 109), не проходящих ни через одну из заданных клеток (xi,yi)
- Заданы числа n ≤ 1012 и k ≤ 100, сколько множеств из k чисел имеют lcm = n? neerc
- Мёбиус: количество подпоследовательностей с НОД=1 cf
- Суммы в подмножествах
- Как посчитать для каждого подмножества сумму по всем его подмножествам? (ДП)
- Обратная задача: как по суммам в подмножествах посчитать исходных значения? (ФВИ, или чуть поменять ДП)
- Количество беспорядков (перестановок без pi = i)
- Цэшки: количество матриц 250*250, в которых в каждой строке/столбце min=1 cf
- NP-трудное
- Покраска за 2n без восстановления ответа
- Количество гамильтоновых путей за 2nnm и полином памяти
- Бонус: число неприводимых многочленов степени n над Fp (мёбиус)