最短路 dijkstra求最短時間)

2021-08-22 10:10:55 字數 939 閱讀 6479

在每年的校賽裡,所有進入決賽的同學都會獲得一件很漂亮的t-shirt。但是每當我們的工作人員把上百件的衣服從商店運回到賽場的時候,卻是非常累的!所以現在他們想要尋找最短的從商店到賽場的路線,你可以幫助他們嗎? 

input

輸入包括多組資料。每組資料第一行是兩個整數n、m(n<=100,m<=10000),n表示成都的大街上有幾個路口,標號為1的路口是商店所在地,標號為n的路口是賽場所在地,m則表示在成都有幾條路。n=m=0表示輸入結束。接下來m行,每行包括3個整數a,b,c(1<=a,b<=n,1<=c<=1000),表示在路口a與路口b之間有一條路,我們的工作人員需要c分鐘的時間走過這條路。 

輸入保證至少存在1條商店到賽場的路線。 

output

對於每組輸入,輸出一行,表示工作人員從商店走到賽場的最短時間

sample input

2 1

1 2 3

3 31 2 5

2 3 5

3 1 2

0 0

sample output

3

2

#include #include#include#includeusing namespace std;

const int maxn=10005;

const int inf=0x3f3f3f3f;

int map[maxn][maxn];

int dis[maxn];

int vis[maxn];

int n,m;

void init() }}

void dijkstra()

for(int i=1;i<=n;i++) }

}int main()

} dijkstra();

printf("%d\n",dis[n]);

}}

Dijkstra求最短路

題目鏈結 給定乙個n個點m條邊的有向圖,圖中可能存在重邊和自環,所有邊權均為正值。請你求出1號點到n號點的最短距離,如果無法從1號點走到n號點,則輸出 1。輸入格式 第一行包含整數n和m。接下來m行每行包含三個整數x,y,z,表示存在一條從點x到點y的有向邊,邊長為z。輸出格式 輸出乙個整數,表示1...

Dijkstra求最短路

題目鏈結 給定乙個n個點m條邊的有向圖,圖中可能存在重邊和自環,所有邊權均為非負值。請你求出1號點到n號點的最短距離,如果無法從1號點走到n號點,則輸出 1。輸入格式 第一行包含整數n和m。接下來m行每行包含三個整數x,y,z,表示存在一條從點x到點y的有向邊,邊長為z。輸出格式 輸出乙個整數,表示...

Dijkstra求最短路

如果圖中存在負權邊,則不要使用 dijkstra 來求最短路。如果題目中表明所給的圖存在重邊與自環。在求最短路徑的問題中,如果自環邊權重是 正數,顯然它不會出現在最短路徑中。如果自環邊是 負數,則需要考慮出現在最短路中。如果是稠密圖,使用了鄰接矩陣來存邊,則因為求最短路,所以我們對於重邊,只需要儲存...