紧急援救

【原题链接】

【题意说明】

求任意两点之间的之间的最短距离。

【问题分析】

我被这个问题给困扰了好久,总是把它看成与“City Driving”相同的问题来处理,很是纠结!经高人提醒才有所醒悟,在此写下,希望对读者有所帮助!

显然本题要是用Flord算法来计算任意两点之间的最短距离,时间复杂度为o(n^3),肯定会超时!若是用dijkstra算法,求一个点就需要o(n^2),要求那么多个案例,那么多个点显然时间复杂度比o(n^3)也少不了多少!那怎么办??

本题关键是在使用dijkstra算法来求最短距离的要加一个处理:找到目标点即退出!因为最先到目标点的一定是最短的!

明白了这点这个问题求没什么难度了!它就是dijkstra的应用,而且每次找过后,把最短的距离用一个二维数组保存下来!

当然,这种算法还不足以解决“City Driving”这个问题!

若有哪位高手有更好的算法,请留言!在此感谢在先!

原文地址:https://www.cnblogs.com/ahmasoi/p/2760129.html