dijkstra求次短路

2021-09-01 13:10:04 字數 410 閱讀 8509

啊,標題雖然是求次短路,但是我們今天不寫求次短路的演算法,我們來寫一下求乙個序列中次小值的演算法吧。

我們就這麼寫:

#include #define inf 0x3f3f3f3f

using namespace std;

typedef long long ll;

const int maxn = 1e5+7;

int a[maxn];

int main()

int mn1 = inf,mn2 = inf;

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

if(mn2>a[i] && mn1上面的mn1只是與a[i]做了交換,這樣我們在下一步求次小值的時候就可以用到最小值和a[i]了。

很清晰吧。

那麼怎麼求次短路大家應該都會了吧,逃~

Dijkstra求最短路與次短路

花了乙個晚上加上午兩節課的時間來思考這個問題,一開始進了個誤區,後來發現不對,找到了正確思路,現在來做個總結 最短路 假設有如下 無向圖 每條邊有權,要求從a到g的最短路,設陣列d i 用來記錄每個點到a的最短路,d用來記錄權值d 0 0。先來說一下我一開始的誤區,在看了一些介紹這個演算法的文章後我...

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。輸出格式 輸出乙個整數,表示...