7-6 最短路径-Dijkstra
分数 15
全屏浏览题目
切换布局
作者 唐艳琴
单位 中国人民解放军陆军工程大学
城市的道路四通八达,我们经常需要查找从某地出发到其他地方的路径,当然我们希望能最快到达。现得到去每个地方需要花费的时间,现请你编写程序,计算从特定地点出发到所有城市之间的最短时间。
输入格式:
输入的第一行给出城市数目N (1≤N≤10)和道路数目M和1(表示有向图)或0(表示无向图);
接下来的M行对应每个城市间来往所需时间,每行给出3个正整数,分别是两个城市的编号(从1编号到N)和来往两城市间所需时间。最后一行给出一个编号,表示从此编号地点出发。
输出格式:
输出从特定地点出发到达所有城市(按编号1-编号N顺序输出)的距离(用编号1->编号**: 表示 ),如果无路,请输出no path。每个城市占一行。
输入样例:
4 4 1
1 2 2
1 4 8
3 2 16
3 4 10
1
输出样例:
1->1:0
1->2:2
1->3:no path
1->4:8
代码如下
#include<bits/stdc++.h>
#include<queue>
using namespace std;
#define N 100006
int ver[N * 2];
int dist[N * 2