SPFA 求最短路(poj2387)

2021-09-26 06:18:38 字數 665 閱讀 1943

目錄

spfa的演算法思想(動態逼近法):

設立乙個先進先出的佇列q用來儲存待優化的結點,優化時每次取出隊首結點u,並且用u點當前的最短路徑估計值對離開u點所指向的結點v進行鬆弛操作,如果v點的最短路徑估計值有所調整,且v點不在當前的佇列中,就將v點放入隊尾。這樣不斷從佇列中取出結點來進行鬆弛操作,直至佇列空為止。

poj 2387 til the cows come home

題目大意:裸的最短路,只不過是倒過來

#include #include #include #include #define maxn 2005

#define inf 0x3f3f3f

using namespace std;

vector> e[maxn];//不定長pair陣列的大小為maxn的陣列

queueq;//要計算的佇列

int d[maxn];//某點到目標點的距離

int inq[maxn];//某點是否在要計算的佇列中

int t, n;//t 條邊,n個點

void init()

void spfa()}}

}int main()

spfa();

cout << d[0];//d[x] x為終點

}

最短路徑 POJ 2387

題目點這裡 給乙個無向圖,首先輸入兩個整數t和n,t 表示邊的數目,n表示頂點數目。接下來輸入 t 組資料,格式為u v w,求出第乙個頂點到最後乙個定點的最短路徑。題目要求的是單源最短路,並且權值沒有負數,應用drikstra演算法即可求得。需要乙個陣列dist用來儲存第乙個頂點f到所有頂點當前的...

spfa求最短路

給定乙個n個點m條邊的有向圖,圖中可能存在重邊和自環,邊權可能為負數。請你求出1號點到n號點的最短距離,如果無法從1號點走到n號點,則輸出impossible。資料保證不存在負權迴路。輸入格式 第一行包含整數n和m。接下來m行每行包含三個整數x,y,z,表示點x和點y之間存在一條有向邊,邊長為z。輸...

spfa求最短路

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