堆優化的單源最段路
例題洛谷模版題p4779題
/*
* author : columbine1999(baofat)
* date : 2019-02-08 09:52:27
* projextname : p4779 堆優化的單源最短路
* version : v-version
* path : tm_directory
* * descirption :提高 不用pair的堆優化單源最短路
*/#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const
int maxn =
1e6+1;
const
int maxm =
2e6+2;
const
int inf =
0x3f3f3f3f
;//鏈式前向星儲存邊
struct edgeedge[maxm]
;int head[maxn]
, tot, n, m, s;
//n,m為頂點數邊數
int dist[maxn]
, vis[maxn]
;//因為要用到堆優化所以需要設乙個node結構體,需要有《運算子來建立priority_queue
//pos表示要到達的頂點,w表示到達定點的距離
struct node};
priority_queue q;
inline
void
add_edge
(int u,
int v,
int w)
//堆優化dijkstra
void
dijkstra
(int start));
while
(!q.
empty()
));}
}}}int
main()
dijkstra
(s);
for(
int i =
1;i<=n;i++
) cout<<<
" ";
//cout<< "hello world";
return0;
}
Dijkstra演算法 單源最短路 堆優化
每次找到離源點最近的乙個頂點,然後以該頂點為中心向下擴充套件,最終得到源點到其餘所有點的最短路徑。說明 dis陣列儲存離源點的所有點的最短路徑,比如源點是1,dis 2 3,表示頂點2離源點的最短路徑為2 執行步驟 1.將所有點的頂點分為兩部分 已知最短路徑集合p和未知最短路徑的集合q。最開始,已知...
Dijkstra演算法詳解 單源最短路 堆優化
用途 用於求圖中指定兩點之間的最短路徑,或者是指定一點到其它所有點之間的最短路徑。實質上是貪心演算法。基本思想 1.將圖上的初始點看作乙個集合s,其它點看作另乙個集合 2.根據初始點,求出其它點到初始點的距離d i 若相鄰,則d i 為邊權值 若不相鄰,則d i 為無限大 3.選取最小的d i 記為...
單源最短路之 優化的Bellman Ford演算法
include using namespace std const double max 1000000.0 typedef struct edge edge e 201 int n 貨幣種數 int m 銀行總數 int s 初始貨幣型別 double v 初始財產 double d 101 源點...