Floyd模板(最短路+传递闭包)
void Floyd ( ) { for ( int k = 1 ; k <= n ; k ++ ) //顶点从1到n { for ( int i = 1 ; i <= n ; i ++ ) { for ( int j = 1 ; j <= n ; j ++ ) { if ( d [ i ] [ j ] < inf && d [ k ] [ j ] < inf ) //最短路防止inf相加溢出 数组初始化无穷大 { d [ i ] [ j ] = min ( d [ i ] [ j ] , d [ i ] [ k ] + d [ k ] [ j ] ) ; } d [ i ] [ j ] = d [ i ] [ j ] || ( d [ i ] [ k ] && d [ k ] [ j ] ) ; //传递闭包 数组初始化0 } } } } 来源: https://blog.csdn.net/weixin_43983247/article/details/100822412