Календарный план
-
Требования к программам-решениям
1. Решения должны быть оформлены в виде одного файла.
2. Все решения должны считывать входные данные из файла input.txt и записывать результат(ы) в файл output.txt, расположенные в одном каталоге с программой.
3. Формат входных и выходных данных должен соблюдаться в соответствии с описанием задачи.
Процесс сдачи задачи
1. Решение отправляется в ejudge.
2. Если ejudge сообщает о том, что все тесты пройдены, то нужно прийти и обсудить решение задачи с преподавателем.
Регистрация на ejudge
1. Идем на сайт http://ejudge.mmcs.sfedu.ru и жмем вход.
2. Выбираем контест "Практика по курсу "Алгоритмы на графах".
3. После регистрации в пункте "Информация о пользователе" надо нажать кнопку редактировать и в поле "Имя участника" указать ФИО полностью.
-
Вводная лекция.
На лекции обсуждаются термины из теории графов, которые будут использоваться в дальнейшем.
Д/З.
1. В стране из каждого города выходит 100 дорог и от любого города можно добраться до любого другого. Одну дорогу закрыли на ремонт. Докажите, что и теперь от любого города можно добраться до любого другого.2. Квадрат 8 на 8 выложили из спичек. Какое наименьшее число спичек надо убрать, чтобы с любого поля можно было пройти на любое другое, не перепрыгивая через спички?3. У князя Гвидона было трое сыновей. Среди его потомков 93 имели каждый по 2 сына и ни одной дочери, а все прочие умерли бездетными. Сколько всего потомков было у Гвидона?
-
Представление графов на компьютере.
Поиск в ширину. Алгоритм определения связности графа. Поиск компонент связности. Поиск кратчайших путей на не взвешенных графах.
-
Поиск в глубину. Определение двудольности. Построение эйлерового цикла. Проверка ацикличности. Поиск наименьшего общего предка (lca).
Построение остовного дерева (дерева поиска в ширину). Время входа и выхода.
-
Определение компонент сильной связности. Определение мостов.
-
Правильная нумерация. Ориентированные ациклические графы (DAG). Алгоритм построения правильной нумерации через поиск источников в графе.
-
Количество остовных деревьев. Теорема Кирхгофа.
Построение минимального остовного дерева. Алгоритмы Краскала и Прима. -
Поиск кратчайших расстояний на графе. Алгоритм Беллмана-Форда. Алгоритмы Дейкстры и его модификации. Дерево кратчайших расстояний.
-
Алгоритм А*. Системы разностных ограничений.
Задача о поиске кратчайших путей между всеми парами вершин. Алгоритм "перемножения матриц". Алгоритм Флойда-Уоршела.
Транзитивное замыкание.
-
Потоки в сетях. Метод Форда-Фалкерсона.
-
Алгоритм Эдмондса-Карпа. Алгоритм Диница.
-
min cost - max flow
Паросочетания. Алгоритм Куна.
-
Алгоритм Тата и алгоритм Рабина-Вазирани.
-
Алгоритм путей, деревьев и цветов.
-
Венгерский алгоритм.