测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A70742. 城市之间的最短路

编程题 入门

题目描述

小丁同学准备去A国旅游,他买了一张A国的地图,地图标出了A国著名的 n 个旅游热门城市,并标注了这 n 个城市之间有 m 条双向路线相连以及每条双向路线的长度。

请你编程帮助小丁求出其中两个城市之间的最短距离。

输入格式

输入第一行为两个正整数 nn \le 10)和 mm \le n \times (n-1)/2),n 表示城市个数,m 表示线段个数。

接下来 m 行,每行输入三个整数 a,bl ,表示 a 市与 b 市之间存在一条线段,线段长度为 l 。( ab 不同,且本题的数据中两个城市之间最多只有一条路)

每组最后一行输入两个整数 xy ,表示问题:x 市与 y 市之间的最短距离是多少。(xy 不同)

城市标号为 1 \sim n1 \le l \le 20

输出格式

输出 x 市与 y 市之间的最短距离,如果 x 市与 y 市之间非连通,则输出 No path

输入输出样例

输入 #1
4 4
1 2 4
1 3 1
1 4 1
2 3 1
2 4
输出 #1
3

说明/提示

## 思路

「城市之间的最短路」先建图再遍历或求特殊路径。

## 步骤

1. 读入点数边数并建邻接表。
2. 按题意 DFS/BFS 或求最短路、欧拉路。
3. 输出路径或距离。