问题
用Floyd算法求解下图各个顶点的最短距离。写出Floyd算法的伪代码和给出距离矩阵(顶点之间的最短距离矩阵)
从任意节点i到任意节点j的最短路径不外乎2种可能:
1是直接从i到j,2是从i经过若干个节点k到j。
所以,我们假设dis(i,j)为节点u到节点v的最短路径的距离,对于每一个节点k,我们检查dis(i,k) + dis(k, j) < dis(i,j)是否成立,如果成立,证明从i到k再到j的路径比i直接到j的路径短,我们便设置dis(i,j) = dis(i,k) + dis(k,j),这样一来,当我们遍历完所有节点k,dis(i,j)中记录的便是i到j的最短路径的距离。
解析
给定一个n个点m条边的有向图,图中可能存在重边和自环,边权可能为负数。
再给定k个询问,每个询问包含两个整数x和y,表示查询从点x到点y