假设地铁行驶一站所需时间是3分钟,换乘需要额外的2分钟。
现在1号线有A,B两站。2号线有B,C两站。从A到C短路径是多长?
直接用站点做Vertex, 时间做Edge计算最短路径,不能统计换乘时间。
所以为B建立两个vertex, B1和B2。A与B1距离为3,B1到B2距离为2, B2到C距离为3。
同理如果是三站换乘,建三个结点,并加三条边,使它们全连通。
接下来用标准最短路径算法就行了 。
假设地铁行驶一站所需时间是3分钟,换乘需要额外的2分钟。
现在1号线有A,B两站。2号线有B,C两站。从A到C短路径是多长?
直接用站点做Vertex, 时间做Edge计算最短路径,不能统计换乘时间。
所以为B建立两个vertex, B1和B2。A与B1距离为3,B1到B2距离为2, B2到C距离为3。
同理如果是三站换乘,建三个结点,并加三条边,使它们全连通。
接下来用标准最短路径算法就行了 。