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