最短路(Bellman佇列優化)

2021-08-06 04:03:57 字數 893 閱讀 5393

#include

#include

#include

#define dif 9999

using

namespace

std;

queue

q;struct hahae[100];

int book[100],dis[100];//分別用來標記頂點是否入隊和源點到每個點的距離

int next[100],first[100];//這兩個陣列用來儲存邊的訪問順序。

//first意思是起點,next意思以該點為起點的下一條邊。

//next中存的是邊的序號,索引是邊的序號;first中存的也是邊的順序,索引是點的序號。

//如果乙個頂點一條出邊,那first中會有m個值,next中全是-1,

//如果某個頂點有多個出邊,first中的非-1與next中非-1加起來是m,這兩個動態互補。

//first存的是邊的訪問順序

//next存的是兩條起點相同的的邊的訪問順序

int main()

//用佇列依次鬆弛

book[1]=1; q.push(1); dis[1]=0;

int k;

while(!q.empty())

}k=next[k];

}book[q.front()]=0;

q.pop();

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

printf("%5d",dis[i]);

return0;}

/*5 7

1 2 2

1 5 10

2 3 3

2 5 7

3 4 4

4 5 5

5 3 6

*/

spfa 快速最短路 佇列優化

spfa 快速最短路 佇列優化,可以用 hdu2544 驗證演算法的正確性 裡面的spfa演算法摘自acdart 的板子。把這個函式記錄在網上,以免忘記。我再理解下。spfa就是維護乙個佇列,這個佇列中的點可以進行鬆弛操作。2017 8 25再次修改 define crt secure no war...

最短路(dij 優先佇列優化)模板

有n個城市,求s到e的最短路徑 當n的值較小時,直接用 dij 演算法沒有問題,但是當數值較大或者訪問過多時就需要優化 演算法思想 貪心,從起點開始,不斷的尋找不同點到起始點的最短距離 鏈結一篇部落格 新增鏈結描述 include include include include include in...

Dijkstra最短路徑演算法優先佇列優化版

模板參考kuangbin 資料結構方面 const int inf 0x3f3f3f3f const int maxn 1000010 struct qnode bool operator const qnode r const struct edge vectore maxn 進行初始化後加邊 b...