把“地铁线路上的连续乘坐”看作在同一条线路内行走不增加换乘次数,只有从一条线路换到另一条线路才计一次换乘。
建模为线路图:每条地铁线路是一条图上的点;若两条线路在某个站有交集,则两点之间连一条边。
查询从起点站 s 到终点站 t 的最少换乘次数:
s 的所有线路作为起点集合,包含 t 的所有线路作为目标集合。关键算法:建图 + BFS 最短路(无权图)。
在一个城市的地铁交通网络,有 M 条地铁线路和 N 个地铁站点,每个地铁站都是一个节点,从 0开始按照顺序编号,如果两条不同的地铁线路在同一个地铁站点交汇,表示可以在这个地铁站点从一条地铁线路换乘到另一条线路,即两条线路上出现相同的站点编号意味着是个换乘点,这个地铁站点对于两条地铁线路来说是连通的。现在根据给定需要查询的地铁行程路线(从起始地铁站点到终点地铁站点),请给出这些地铁行程路线的最少地铁线路换乘次数。
第一行包含三个整数 n、m 和 k ,分别表示站点数量、地铁线路数量和需要查询的起点站和终点站的组合数量。