如果邊<i,j>不存在,則置d[i][j]為INF。
#include<cstdio>
const int MAX=10000; const int INF=1000000; int d[MAX][MAX]; int floyd (int n) { for(int k =1 ; k <= n; k++) { for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) { if(d[i][k] + d[k][j] < d[i][j]) d[i][j] = d[i][k] + d[k][j]; } } }
????????return 0; } int main() { return 0; } floyd后,如果d[i][j]>=INF,則點i到點j沒有路。
else點i到點j的最短路徑長度為d[i][j]。