181. 【应-37-2·难】多状态导航最短路

中等 Python 2s 256MB
通过 0/0

📋 题目描述
多界面应用可以抽象成一张有向图:每个状态是一个节点,每条 `from to` 表示存在一条单向跳转。现给定 N 个状态和 M 条有向边,再给一对起点 start 和终点 end,请输出从 start 跳到 end 至少要经过几条边。 若 start == end,输出 0;若不可达,输出 -1。
📥 输入描述
第一行两个整数 N M(1<=N<=100,0<=M<=10000)。 接下来 M 行 `from to`(有向边)。 最后一行 `start end`,两个状态名。
📤 输出描述
输出一个整数:最短跳数;不可达输出 -1。
输入样例
4
4
A B
B C
A C
C D
A D
输出样例
2
提示:BFS 求最短路。维护邻接表 adj[from]=[to,...] 和 dist[start]=0 + 队列。 注意 start == end 直接输出 0;BFS 跑完仍未访问到 end 输出 -1。

登录后提交代码

讨论区 0
登录后参与讨论

还没有讨论,来发表第一条吧!