看到这题,第一印象,用dijkstra算法求n次单源最短路,时间复杂度O(n^3),超时30分妥妥的. 于是用优先队列优化,O(n*mlogm),快很多,但依然30. 那么不妨换一种思路,题目要求的是任一据点到最近k个行星发动机据点的最短路之和,也就是说我们不必求出所有的最短路,而只需要求出各行星发动机据点到其它据点的最短路. 若行星发动机据点个数为t,则只需求t次最短路,这样一来,时间复杂度变为O(t*mlogm). 又见子任务:对于60%的数据 保证行星发动机数量和k相同. 于是,有60分的…