Задачи о графах
Степени вершин и лемма о рукопожатиях, можно ли обойти все рёбра по разу, кратчайший путь по алгоритму Дейкстры и формула Эйлера V − E + F = 2.
Как решать
Граф — точки (вершины) и линии между ними (рёбра). Знакомства, дороги, мосты — всё это графы. Многое о графе говорят степени вершин — число рёбер у каждой: их сумма вдвое больше числа рёбер, а нечётных степеней всегда чётное количество.
По шагам
- Степени: сумма степеней равна $2E$, поэтому должна быть чётной. Если нечётна — такого графа нет.
- Обход всех рёбер по разу (эйлеров путь): граф связен и нечётных вершин $0$ (можно вернуться в начало) или $2$ (путь от одной нечётной до другой). Иначе нельзя.
- Кратчайший путь (Дейкстра): отмечайте вершины по одной — каждый раз ближайшую к старту из неотмеченных — и обновляйте расстояния до её соседей.
- Плоский связный граф: $V - E + F = 2$, где грани считаются вместе с внешней.
Где ошибаются
- Считают, что сумма степеней равна числу рёбер. Вдвое больше — каждое ребро считается у двух концов.
- Для эйлерова пути проверяют степени, но забывают о связности.
- В алгоритме Дейкстры отмечают вершину раньше, чем она стала ближайшей, и пропускают более короткий обходной путь.
- В формуле Эйлера не считают внешнюю грань.