Floyd-Warshall算法
用途:
计算图中每两点之间的最短距离;
初始化:
d[i][i]=0;
其余为INF;
代码:
for(int k=0;k<n;++k)
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
if(d[i][j]<INF&&d[k][j]<INF)
d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
含义:
枚举中间节点,不断松弛路径;
其本质是一个dp;
Floyd-Warshall算法
用途:
计算图中每两点之间的最短距离;
初始化:
d[i][i]=0;
其余为INF;
代码:
for(int k=0;k<n;++k)
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
if(d[i][j]<INF&&d[k][j]<INF)
d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
含义:
枚举中间节点,不断松弛路径;
其本质是一个dp;