floyd模板
void floyd(){
for(int k=1;k<=n;++k){
for(int i=1;i<=n;++i){
if(f[i][k]==INF) continue; //剪枝
for(int j=1;j<=n;++j){
if(i!=j&&i!=k&&j!=k){
if(f[i][k]+f[k][j] <= f[i][j]) //松弛
f[i][j]=f[i][k]+f[k][j];
}
}
}
}
}