用迪傑斯特拉演算法實現有向網的最短路徑
第一行輸入有向網的頂點和邊數,第二行輸入各頂點值,用空格間隔,第三行開始輸入各條邊的 兩個點的及邊上的權值,用空格間隔。最後一行輸入要求路徑的兩個頂點。
輸出最短路徑經過的各頂點,中間用-->連線。
在這裡給出一組輸入。例如:
6 8
0 1 2 3 4 5
0 2 10
0 4 30
0 5 100
1 2 5
2 3 50
3 5 10
4 3 20
4 5 60
0 3
結尾無空行
在這裡給出相應的輸出。例如:
0-->4-->3
結尾無空行
#include#include#include
using
namespace
std;
const
int n=1010
;struct
edge;
struct
nodea[
1010
];int
n;int find(int
u) }
return -1;}
void add(int u,int v,int
w)int
dis[n],pre[n];
bool
st[n];
void dijkstra(int
u) }
if(dis[k]==0x3f3f3f3f
) st[k]=1
;
for(edge* j=a[k].next;j!=null;j=j->next)}}
}void showroad(int
v)else
}int
main()
for(int i=0;i)
intu,v;
cin>>u>>v;
dijkstra(u);
showroad(v);
return0;
}
迪傑斯特拉最短路徑
問題描述 在帶權有向圖g中,給定乙個源點v,求從v到g中的其餘各頂點的最短路徑問題,叫做單源點的最短路徑問題。在常用的單源點最短路徑演算法中,迪傑斯特拉演算法是最為常用的一種,是一種按照路徑長度遞增的次序產生最短路徑的演算法。在本題中,讀入乙個有向圖的帶權鄰接矩陣 即陣列表示 建立有向圖並按照以上描...
最短路 (迪傑斯特拉)
a 最短路 crawling in process.crawling failed time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status practice hdu 2544 description 在...
最短路徑 迪傑斯特拉演算法
例如,要求下圖v0到v8的最短路徑 所以我們可以找到這樣的一條最短路徑 下面是他的鄰接矩陣 偽 如下 define maxvex 9 define infinity 65535 typedef int patharc maxvex 用於儲存最短路徑下標的陣列 typedef int shortpat...