851. spfa求最短路(用佇列優化bellman——ford演算法)
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<queue>
using namespace std;
const int N = 100010;
int h[N],e[N],ne[N],w[N], idx;
bool st[N];//判斷這個點是否已經在佇列中
int dist[N];
int n, m;
void add(int a, int b, int c )
{
e[idx] = b, w[idx] = c, ne[idx] = h[a], h[a] = idx ++;
}
//用更新的點來更新此點所有出邊
int spfa()
{
memset(dist, 0x3f, sizeof dist);
dist[1] = 0;
queue<int> q;
q.push(1);
st[1] = true;
while(q.size())
{
int t = q.front();
q.pop();
st[t] = false;
for(int i = h[t]; i != -1; i = ne[i])
{
int j = e[i];
if(dist[j] > dist[t] + w[i])
{
dist[j] = dist[t] + w[i];
if(!st[j])
{
st[j] = true;
q.push(j);
}
}
}
}
if(dist[n] > 0x3f3f3f3f / 2) return -1;
return dist[n];
}
int main()
{
cin >> n >> m;
memset(h, -1, sizeof h);
while(m --)
{
int a, b, c;
cin >>a >> b >> c;
add(a, b, c);
}
if(spfa() == -1) cout << "impossible";
else cout << spfa();
return 0;
}//來自acwing
相關文章
- Bellman Ford+SPFA佇列優化(路徑還原 輸出最短路的路徑)佇列優化
- 演算法專題 | 10行程式碼實現的最短路演算法——Bellman-ford與SPFA演算法行程
- Bellman - Ford, SPFA 學習筆記(含有負權的單源最短路徑)筆記
- hdu1874 暢通工程續 Bellman-Ford演算法SPFA演算法
- bellman-ford 單源最短路問題 圖解圖解
- POJ 1724 ROADS(優先佇列+spfa)佇列
- 最短路-SPFA演算法&Floyd演算法演算法
- 【演算法導論】24.1 Bellman-Ford 演算法演算法
- A星、Floyod、Bellman-Ford
- Python 圖_系列之縱橫對比 Bellman-Ford 和 Dijkstra 最短路徑演算法Python演算法
- 最短路演算法詳解(Dijkstra/SPFA/Floyd)演算法
- 【Dijkstra演算法】未優化版+優先佇列優化版演算法優化佇列
- POJ 1511 Invitation Cards(最短路spfa演算法)演算法
- hdu 4568 spfa 最短路演算法+旅行商問題演算法
- Bellmanford與Spfa解決存在負邊權的單源匯最短路問題
- POJ 2240-Arbitrage(套匯-Bellman Ford)
- 三、資料結構演算法-棧、佇列、優先佇列、雙端佇列資料結構演算法佇列
- 01揹包優先佇列優化佇列優化
- POJ 3169(Bellman-Ford演算法,差分約束系統)演算法
- 演算法面試(三) 優先佇列演算法面試佇列
- 最短路(DJsktra,spfa,flyd).mdJS
- 最詳細版圖解優先佇列(堆)圖解佇列
- 用優先佇列構造Huffman Tree及判斷是否為最優編碼的應用佇列
- POJ1860 Currency Exchange【Bellman_ford演算法:判斷是否有正環】演算法
- IT名企演算法與資料結構題目最優解--棧和佇列演算法資料結構佇列
- SPFA演算法演算法
- 求最短路徑——DFS+Floyd演算法演算法
- 分散式佇列程式設計優化篇分散式佇列程式設計優化
- codeforces round 974(div.3)E(優先佇列實現dijstra演算法,devc++的優先佇列用greater報錯)佇列JS演算法devC++
- PHP優先佇列PHP佇列
- 堆--優先佇列佇列
- 優先佇列 (轉)佇列
- 資料結構與演算法分析 (優先佇列)資料結構演算法佇列
- [演算法系列之四]優先順序佇列演算法佇列
- 陣列模擬佇列 以及佇列的複用(環形佇列)陣列佇列
- 淺談優先佇列佇列
- STL 優先佇列 用法佇列
- 堆與優先佇列佇列