🪴 あやめHex

Search

Search IconIcon to open search

全点対最短路 (Floyd-Warshall)

Last updated Nov 30, 2022 Edit Source

# 説明

不安なら3回やればいい

# 計算量

$O(V^3)$

# 実装

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#include <vector>

std::vector<std::vector<int>> d;
int V;

void floyd_warshall() {
  for (int k = 0; k < V; k++)
    for (int i = 0; i < V; i++)
      for (int j = 0; j < V; j++) d[i][j] = std::min(d[i][j], d[i][k] + d[k][j]);
}

# 使用例