考虑一个站点列表,比如10个站点,“A”到“J”,通过它们之间运行的列车连接。
在图表方面,考虑站点(顶点)和列车运行 他们之间(边缘)形成连接图但不完整,即 每个电台都可以直接或通过任何电台到达 制作啤酒花的其他车站。最重要的是,这些啤酒花包括 在到达和下次出发之间等待。可以理解的是, 两个连接站之间的行程时间是独立的。然而, 下次出发的等待时间取决于你来自哪里。
注意:我仅提及图表以帮助理解。人们可以超越它思考。
问题:鉴于任何两个站点和从初始站点开始的时间,如何找到到达目的地的最短时间,计算在跳跃的情况下到达和离开之间的等待时间?什么DS将用于相同的?假设如果两个车站通过火车相连,则只有一列火车在它们之间运行。
答案 0 :(得分:0)
毕竟恕我直言Dijkstra应该足够了。
如果您从节点“A”运行Dijkstra,它会找到到所有其他节点的最短路径。
即使我们有“跳”,最糟糕的情况是你早点到达某个站,然后你必须等到同一列火车,好像你稍后到达其他路线一样。
唯一的区别是,您将价格视为“等待时间+旅行时间”,而不仅仅是“旅行时间”
这种行为是由列车真正“到达/离开”造成的。
如果每个节点组合A1中的每个A2节点的每个路由 - > A2 - > A3从A1到A3到A2都会受到随机惩罚,那么我认为这是不可预测的。