T5 午枫的双向奔赴
题目大意
给定一张图,小午和小枫分别在 111 号节点和 nnn 号节点,求出两人会和的最小时间,并且按照编号从小到大输出所有花费最小时间的节点
题解思路
设 d1id1_id1i 为从 111 号节点出发到达 iii 号节点的最短时间,dnidn_idni 为从 nnn 号节点出发到达 iii 号节点的最短时间。那么他们在 iii 号节点会和花费的时间为 max(d1i,dni)max(d1_i,dn_i)max(d1i ,dni ) 。所以他们会和的最短时间为 mini=1n(max(d1i,dni))\min_{i=1}^{n} (max(d1_i,dn_i))mini=1n (max(d1i ,dni )) 。
分别以 111 号节点和 nnn 号节点为起始节点用 dijkstradijkstradijkstra 求出最短路,即 d1id1_id1i 和 dnidn_idni ,然后再求出他们会和需要的最短时间,最后找出所需最短时间的节点,按照编号从小到大输出。
参考代码