【题目描述】
平面上有n个点(N<=100),每个点的坐标均在-10000~10000之间。其中的一些点之间有连线。若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点直线的距离。现在的任务是找出从一点到另一点之间的最短路径。
【解题思路】
这是一道最短路径问题的模板题,我们有很多种算法,这里我选用的是Floyed,Floyed的时间复杂度是 Θ ( n 3 ) \Theta(n^3) Θ(n3),但是他有一些优点,就是能够处理有负数的边权。
那么我们的Floyed应该怎么实现呢?
我们如果要求两个点 i i i 和 j j j 之间的最小路径,我们有两种方法,一种是直接从 i i i 和 j j j ,另一种则是从通过一个点 k k k 间接的从 i i i 和 j j j。我们只要在其中选取一个较小值即可。
初始化的话我们只要把两个点 i i