Ответ 1
Если вы следуете слегка модифицированному алгоритму Дейкстры, вы можете иметь решение для всех пар.
Объяснение: Пути от u
до v
- это сумма следующих значений:
- Пути от
u
доv
, которые не проходят черезw
- Пути, проходящие через
w
= количество путей отu
доw
раз количество путей отw
доv
Инициализируйте матрицу нулями, кроме тех случаев, когда есть ребро от i
до j
(которое равно 1).
Тогда следующий алгоритм даст вам результат (all-pair-path-count)
for i = 1 to n:
for j = 1 to n:
for k = 1 to n:
paths[i][i] += paths[i][k] * paths[k][j]
Излишне говорить: O(n^3)
Желание прочитать одно парное решение.:)