Floyd
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
if(dis[i][k] + dis[k][j] < dis[i][j])dis[i][j] = dis[i][k] + dis[k][j];
}
傳遞閉包for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++){
if(dis[i][k]){
for(int j=1;j<=n;j++){
if(dis[k][j])dis[i][j] = 1;
}
}
}
}