Третья лекция
- Изоморфизм деревьев
- Проверка за O(NlogN) с хешами
- Какие хеш-функции можно использовать? (экспонента, логарифм)
- Проверка за O(N) с хешами (ввели понятие "тип вершин", перебираем вершины в порядке возрастания типа)
- Избавляемся от хешей: меняем пару "хеш, хеш-таблица" на "бор", ребра бора нужно хранить в хеш-таблице.
- Проверка за O(N) без хешей, с маленькиой константой и коротким кодом (в каждой вершине бора храним только одно ребро)
- Жадность
- Стандартные задачи из теории расписаний
- Даны времена выполнения заказов общий дедлайн, выполнить максимум заказов (сортировка)
- За каждый не выполненный заказ платим штраф wi, минимизировать штраф
- Непрерывная задача: сортировка по частному
- Дискретная задача: рюкзак, NP-трудная
- Штрафа нет, но дедлайн у каждого заказа свой, выполнить все заказы (сортировка по дедлайну)
- Штрафа нет, но дедлайн у каждого заказа свой, выполнить max количество заказов
- Решение 1 за O(n2): сортировка по дедлайну, а внутри динамика
- Решение 2 за O(n2): заказ с минимальным временем выгодно брать, пытаемся в таком порядке добавлять заказы
- Решение 3 за O(nlogn): в решении 1 вместо динамики жадно берем заказ если можем, а если не можем, пытаемся заменить и улучшить суммарное время
- Сведение нескольких задач к последней идее
- Коробки (масса, прочность)
- Школьники вылезают из ямы (рост, длина рук)
- Авторитеты (необходимый авторитет для присоединения, изменение авторитета)
- Задачи, которые решаются сортировкой
- Компаратор: (1,2) лучше (2,1)
- Доказательство корректности: транзитивность компаратора.
- Пример: задача о двух станках (честное решение не простое, но сортировка (1,2) лучше (2,1) работает)
- Ззадача про белоснежку из контеста (см. задачу из контеста)