在某地的铁路服务,出于经济⽅⾯的考虑,所有的班次都是“单向”的。也就是说,有从 A 地开往 B 地的班次并不
意味着有从 B 地前往 A 地的班次。即使他们碰巧都存在,也不意味着他们是同样的路线(即距离也不⼀致)。
这个问题的⽬的是帮助铁路公司为其客⼾提供有关路线的信息。特别是,你将计算沿某条路线的距离、两个城
镇之间不同路线的数量以及两个城镇之间的最短路线。
输入: ⼀个有向图,其中⼀个节点代表⼀个城镇,⼀条边代表两个城镇之间的路线。边缘的权重表⽰两个城镇之
间的距离。给定的路线永远不会出现超过⼀次,并且对于给定的路线,起点和终点城镇不会是同⼀个城镇。
输出:对于输⼊ 1 到 5 的情况,如果不存在这样的路线,则输出“NO SUCH ROUTE”。否则,按照给定的路线;
不要做任何额外的停留!例如,第⼀个问题是从城市 A 出发,然后直接到城市 B(距离为 5),然后直接到城
市 C(距离为 4)。
- 1 . 路线 A-B-C 的距离。
- 2 . 路线 A-D 的距离。
- 3 . 路线 A-D-C 的距离。
- 4 . 路线 A-E-B-C-D 的距离。
- 5 . 路线 A-E-D 的距离。
- 6 . 从 C 开始到 C 结束并且最多经过 3 个站点的可选路线数量。在下⾯的⽰例数据中,有两个这样的⾏程:C-D-C(2 站)。 和 C-E-B-C(3 站)。
- 7 . 从 A 开始到 C 结束并且恰好有 4 个停靠点的可选路线数。在下⾯的⽰例数据中,有三个这样的⾏程:A 到 C(通过 B、C、D); A 到 C(通过 D、C、D); 和 A 到 C(通过 D、E、B)。
- 8 .从 A 到 C 的最短路线的⻓度(根据⾏驶距离)。
- 9 .从 B 到 B 的最短路线的⻓度(根据⾏驶距离)。
- 10 .从 C 到 C 距离⼩于 30 的不同路线的数量。在下⾯的⽰例数据中,⾏程为:CDC、CEBC、CEBCDC、CDCEBC、CDEBC、CEBCEBC、CEBCEBCEBC。
测试输入: 对于测试输入,城镇使⽤从 A 到 D 的字⺟表的前⼏个字⺟命名。两个城镇(A 到 B)之间距离为 5
的路线表⽰为 AB5。
AB5、BC4、CD8、DC8、DE6、AD5、CE2、EB3、AE7
预期输出:
输出#1:9
输出#2:5
输出#3:13
输出#4:22
输出#5:NO SUCH ROUTE
输出#6:2
输出#7:3
输出#8:9
输出#9:9
输出#10:7
注意事项
- 我们要求你使⽤Java, Ruby, C#, Python, Clojure, Scala 或 JavaScript来解答题⽬
- 程序必须⽀持通过文本文件来提供输入
- 程序必须可以运⾏
- 请使⽤每个问题⾥提供的测试数据进⾏测试来表明你的程序是正确⼯作的