Floyd算法求的是图的任意两点之间的最短距离
下面是Floyd算法的代码实现模板:
const int INF = 10000000;
const int maxv = 200; // maxv为最大顶点数
int n, m; // n 为顶点数,m为边数
int dis[maxv][maxv]; // d[i][j]表示顶点i顶点j的最短距离
void Floyd(){
for (int k = 0; k < n; k++){
for (int i = 0; i < n; i++){
for (int j = 0; j < n; j++){
if (dis[i][k] != INF && dis[k][j] != INF && dis[i][k] + dis[k][j] < d[i][j]){
dis[i][j] = dis[i][k] + dis[k][j]; // 找到更短的路径
}
}
}
}
}