A70742 | 城市之间的最短路
来源编程题
时间限制1s
内存限制32MB
通过 / 提交0/0
题目描述
小丁同学准备去A国旅游,他买了一张A国的地图,地图标出了A国著名的 n 个旅游热门城市,并标注了这 n 个城市之间有 m 条双向路线相连以及每条双向路线的长度。
请你编程帮助小丁求出其中两个城市之间的最短距离。
输入格式
输入第一行为两个正整数 n(n \le 10)和 m(m \le n \times (n-1)/2),n 表示城市个数,m 表示线段个数。
接下来 m 行,每行输入三个整数 a,b 和 l ,表示 a 市与 b 市之间存在一条线段,线段长度为 l 。( a 与 b 不同,且本题的数据中两个城市之间最多只有一条路)
每组最后一行输入两个整数 x 和 y ,表示问题:x 市与 y 市之间的最短距离是多少。(x 与 y 不同)
城市标号为 1 \sim n, 1 \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. 输出路径或距离。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?