Условие задачи Дан ориентированный взвешенный граф. Вам необходимо найти пару вершин, кратчайшее расстояние от одной из которых до другой максимально среди всех пар вершин. Алгоритм решения В задаче следует реализовать алгоритм Флойда. В ячейках входной (начальной) матрицы поставим большое натуральное число (вместо -1) вместо кратчайшего пути (если остается это число, значит, пути просто не существует). Затем в матрице кратчайших расстояний следует найти наибольшее число (отличное от нашего максимального, присвоенного в самом начале) – оно и будет максимальным кратчайшим расстоянием. У нас уже есть имеющиеся пути. Мы вычисляем пути для всех вершин и оставляем кратчайший, то есть: Если кратчайший путь из u в v, содержащий только вершины из множества {1..i}{1..i}, проходит через вершину i, то кратчайшим путем из u в v является кратчайший путь из u в i, объединенный с кратчайшим путем из i в v. В противном случае, когда этот путь не содержит вершины i, кратчайший путь из u в v, содержащий
Разбор задачи "Алгоритм Флойда - 2" № 136 с сайта acmp.ru (С++)
6 июля 20226 июл 2022
129
1 мин