【发布时间】:2020-07-01 06:53:45
【问题描述】:
一个有向图G由顶点V和边E给出,分别代表火车站和单向火车路线。
不同列车号的列车在一对顶点之间沿一个方向移动。
G的顶点通过分配列车号的列车相互连接。
当乘客在图表中移动时需要换乘火车时,定义了一个跃点。只有当车号发生变化时,乘客才需要换车。
给定两个顶点 V1 和 V2,如何计算从 开始到达 V2 所需的最小跳数>V1?
在上面的例子中,顶点 0 和 3 之间的最小跳数是 1。
从0到3有两条路径,分别是
0 -> 1 -> 2 -> 7-> 3
Hop Count 4
跳数为 4,因为乘客必须从火车 A 换到 B,然后再换到 C 和 B。
和
0 -> 5 -> 6 -> 8 -> 7 -> 3
Hop Count 1
Hop Count 为 1,因为乘客只需要一条火车路线 B 即可从 Vertices 0 到达 3
因此最小跳数为 1。
输入示例
输入图创建
输入待解决
输出示例
输出 - 用跳数求解
Hop Count 列中的 0 表示无法到达目的地
【问题讨论】:
-
这张图中你有多少个顶点和边?还有多少个 trainID?
-
@JK,顶点数、边数和 trainID 数分别为 5000、10000 和 10。
-
很好,我的算法应该可以解决这个问题。见答案;)
标签: algorithm graph graph-algorithm