Поиск в глубину (29 октября 2015, Серёжа)
- Общие замечания
- Быстрый ввод-вывод
- Ссылка на сайте на планы лекций и семинаров
- Кодим dfs
- Компоненты связности [code]
- Топологическая сортировка [code]
- Покраска в два цвета [code]
- Мультисписок для хранения графа [code] [code]
- Сравнение мультисписка и массива векторов
- Путь между двумя вершинами в графе [code]
- Замеряем, сколько памяти используется при рекурсии. [code]
- Задачи на dfs
- Дан ацикличный орграф, найти в нем гамильтонов путь за O(V+E)
- Дан ацикличный орграф, найти в нем самый длинный путь за O(V+E) [code]
- Найти цикл, проходящий через данное ребро графа
- Ориентация графа (ориентировать граф так, чтобы не было циклов)
- Известно, что граф можно разделить на две клики. Сделать это за O(E)
- [не успеем] Есть комнаты и двери между комнатами. Нужно каждую дверь покрасить с одной стороны в зеленый цвет, с другой в оранжевый цвет так, чтобы для каждой комнаты количества зеленых и оранжевых дверей отличались не более чем на один. O(V+E).
- [не успеем] Дан граф, построить матрицу достижимости N, M <= 105
- [не успеем] Разбить множество вершин на две доли так, чтобы у каждой вершины был сосед в другой доли.