由题意可知,我们需要求的是很多个点到同一个店的最短距离,然后再求同一个点到很多个点的最短距离. 对于后者我们很好解决,就是很经典的单源最短路径,跑一边dijkstra或者SPFA即可. 然而对于前者,我们应该怎么解决呢?难道我们需要求一边Floyd?当然不可能!\(O(n^3)\)的时间复杂度,对于我们的\(n<=1000\)是果断要超时的. 深入分析,对于一张图,A到B的最短距离,应该等于B到A,在反转一张图以后的最短距离.所谓反转一张图,就是把变得方向调转.这一点是很显然的! 因此,对于问题…