#684. 最短路径问题
最短路径问题
【问题描述】
平面上有 n 个点(n ≤ 100),每个点的坐标均在 −10000 ~ 10000 之间。 其中的一些点之间有连线。若两点之间有连线,则表示可以从一个点到达另一个点,两点间通路的距离为两点间的直线距离。 现在的任务是找出从一点到另一点之间的最短路径。
两点 (x1, y1)、(x2, y2) 之间的距离为: sqrt( (x1 − x2)² + (y1 − y2)² )
【输入格式】
输入文件为 short.in,共 n + m + 3 行:
- 第 1 行:一个整数 n
- 第 2 行到第 n+1 行:每行两个整数 x、y,表示一个点的坐标
- 第 n+2 行:一个整数 m,表示连线条数
- 接下来 m 行:每行两个整数 i、j,表示第 i 个点和第 j 个点之间有连线
- 最后一行:两个整数 s 和 t,分别表示源点和目标点
【输出格式】
输出文件为 short.out,仅一行,一个实数(保留两位小数),表示从 s 到 t 的最短路径长度。
【输入样例】
5
0 0
2 0
2 2
0 2
3 1
5
1 2
1 3
1 4
2 5
3 5
1 5
【输出样例】
3.41
统计
相关
在以下作业中: