3205: Dijkstra算法
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:17
解决:11
题目描述
Dijkstra算法是一种求解最短路径的贪心算法,它能够找到两点之间的最短路径。
1. 创建一个数组用于记录起始点到其他节点的距离,初始化为无穷大。
2. 创建一个数组用于记录节点是否已经被访问过,初始化为false。
3. 将起始点到自身的距离设为0。
4. 遍历图中所有节点,对于每个节点:
1) 找到起始点到该节点距离最短的节点(即未被访问过且距离最小的节点)。
2) 标记该节点已经被访问过。
3) 遍历该节点的所有邻居节点,更新起始点到邻居节点的距离。
5. 最终得到起始点到其他所有节点的最短距离。
输入
依次输入节点数, 有向线段数, 起点, 终点(数字间以空分隔)
输出
最短路径
样例输入 复制
5 6 1 5
1 2 4
2 5 10
1 3 5
3 2 1
3 4 2
4 5 6
样例输出 复制
13