c++代码
用d[i][j]表示节点i与j之间的距离。
void Floyd() {
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
if(i == j) d[i][j] = 0;
else d[i][j] = INF;//注意INF的大小,防止下面加法时溢出
}
}
for(int k = 0; k < n; k++) {
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
}
}
}
}