求任意两点间最短路径
FOR(i,1,n) FOR(j,1,n) FOR(k,1,n){ //可同时判断两点之间是否相连 dis[i][j] = min(dis[i][k] + dis[k][j] , dis[i][j]); }
(不能处理负边权)
从一个点到其他所有点的最优算法
需要要素:dis[]从起点到该点的最短路||pre[]前驱节点,用来输出路径
初始化:dis[v] = inf dis[s] = 0 pre[s] = 0
FOR(i,1,n){ //在没有被访问过的点中找一个顶点u使得dis[u]最小 //对u通向的未访问的点更新dis }