Присоединиться

9–11 класс·средний уровень

Кратчайший путь между пунктами по таблице расстояний

Условие

Сеть двусторонних дорог между пунктами А, Б, В, Г, Д и Е задана таблицей длин в километрах (0 — прямой дороги нет, на диагонали прочерк). Строка А: —, 4, 2, 0, 0, 0; строка Б: 4, —, 1, 5, 0, 0; строка В: 2, 1, —, 7, 9, 0; строка Г: 0, 5, 7, —, 2, 9; строка Д: 0, 0, 9, 2, —, 3; строка Е: 0, 0, 0, 9, 3, —. Найдите длину кратчайшего пути из А в Е и укажите маршрут.

Ответ

Ответ и полный разбор откроются после входа

Посмотреть ответ

Решение по шагам

  1. Шаг 1. Переводим таблицу в список дорог

    АБВГДЕ
    А—42000
    Б4—1500
    В21—790
    Г057—29
    Д0092—3
    Е00093—

    Берём клетки выше диагонали: А–Б 4, А–В 2, Б–В 1, Б–Г 5, В–Г 7, В–Д 9, Г–Д 2, Г–Е 9, Д–Е 3. Девять дорог, все двусторонние.

  2. Шаг 2. Заводим метки расстояний

    Для каждого пункта храним метку d(X)d(X) — лучшую известную длину пути из А в XX. В начале d(А)=0d(А)=0, остальные считаем «бесконечными».

    Работаем так: выбираем пункт с наименьшей меткой, который ещё не обработан, и через него пытаемся улучшить метки его соседей. Первый шаг: соседи А — это Б и В, поэтому d(Б)≤4d(Б) \le 4 и d(В)≤2d(В) \le 2.

Осталось ещё 3 шага

  1. Шаг 3. Обрабатываем В и Б

  2. Шаг 4. Обрабатываем Г и Д

  3. Шаг 5. Восстанавливаем маршрут и проверяем

Получить полное решение

Бесплатно · займёт минуту

Частые ошибки

  • Считают, что раз В–Д и Д–Е есть, то маршрут из трёх дорог А–В–Д–Е и будет кратчайшим (14 км).

  • Едут в Б напрямую по дороге в 4 км, не заметив, что через В получается 3 км.

  • Заканчивают путь по дороге Г–Е (9 км) и получают 17 км.

  • Принимают 0 в таблице за дорогу нулевой длины и «телепортируются» между несвязанными пунктами.

Другие задачи по теме «Графы и таблицы»

Кратчайший путь между пунктами по таблице расстояний — решение с объяснением | Lom Ai