Сколько существует кратчайших маршрутов между пунктами
Условие
Из пункта А в пункт Е ведут дороги с односторонним движением: А→Б 2 км, А→В 3 км, А→Г 8 км, Б→В 1 км, Б→Г 4 км, Б→Д 5 км, В→Г 3 км, В→Д 4 км, Г→Е 3 км, Д→Е 2 км. Найдите длину кратчайшего пути из А в Е и определите, сколько различных маршрутов имеют такую длину.
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Шаг 1. Два числа на каждый пункт
Такие задачи решают одним проходом, но храня для каждого пункта сразу две величины:
- — длина кратчайшего пути из А в ;
- — сколько разных путей имеют эту длину.
Правило пересчёта при рассмотрении дороги длиной : если меньше текущего — записываем новое расстояние и ; если равно — расстояние не меняем, а счётчик увеличиваем: .
Шаг 2. Порядок обработки и первые пункты
Все дороги ведут «вперёд» по цепочке А, Б, В, Г, Д, Е, поэтому обрабатывать пункты можно просто в этом порядке — к моменту разбора пункта все ведущие в него дороги уже учтены.
Старт: , .
В Б ведёт только дорога из А: км, .
В В ведут две дороги: из А это , из Б это . Длины равны, поэтому км и .
Осталось ещё 3 шага
Шаг 3. Считаем Г и Д
Шаг 4. Финальный пункт
Шаг 5. Проверка перечислением
Бесплатно · займёт минуту
Частые ошибки
- ✗
Считают все пути из А в Е (их 7) вместо только кратчайших.
- ✗
При равенстве длин заменяют счётчик числом путей нового предшественника вместо того, чтобы прибавить его.
- ✗
Теряют «обходной» кратчайший участок А–Б–В (2 + 1 = 3 км), равный прямой дороге А–В, и получают 3 или 4 маршрута.
- ✗
Включают дорогу А→Г (8 км) в кратчайшие пути к Г и завышают ответ.
- ✗
Останавливаются на длине 9 км, не ответив на вторую часть вопроса.