c--最短路
time limit: 7000ms memory limit: 65536kb
problem description
給出乙個帶權無向圖,包含n個點,m條邊。求出s,e的最短路。保證最短路存在。
input
多組輸入。
對於每組資料。
第一行輸入n,m(1<= n && n<=5*10^5,1 <= m && m <= 2*10^6)。
接下來m行,每行三個整數,u,v,w,表示u,v之間有一條權值為w(w >= 0)的邊。
最後輸入s,e。
output
對於每組資料輸出乙個整數代表答案。
example input
3 11 2 3
1 2example output
3思路:
由於節點的資料範圍過大,因此無法利用二維陣列儲存路徑,此時需要使用連線表儲存路徑。
spfa演算法:
1.可以解決有負權值的情況。
2.利用佇列進行鬆弛操作。
#include #include #include #include #include #include #include #define inf 0x3f3f3f3f
using namespace std;
struct node
a,b;
vectorv[500100];
int vis[500100],dist[500100], n, m;
void spfa(int s, int e)}}
}cout<>s>>e;
spfa(s,e);
}}
HDU 2544 最短路 SPFA 鄰接表 模板
problem description 在每年的校賽裡,所有進入決賽的同學都會獲得一件很漂亮的t shirt。但是每當我們的工作人員把上百件的衣服從商店運回到賽場的時候,卻是非常累的!所以現在他們想要尋找最短的從商店到賽場的路線,你可以幫助他們嗎?input 輸入包括多組資料。每組資料第一行是兩個整...
最短路SPFA演算法 (通過鄰接表來實現)
適用範圍 給定的圖存在負權邊,這時類似dijkstra等演算法便沒有了用武之地,而bellman ford演算法的複雜度又過高,spfa演算法便派上用場了。我們約定有向加權圖g不存在負權迴路,即最短路徑一定存在。當然,我們可以在執行該演算法前做一次拓撲排序,以判斷是否存在負權迴路,但這不是我們討論的...
SCU 最短路 Dijkstra 鄰接表
time limit 1000ms memory limit 32768k 給定乙個n個節點,m條有向邊的圖,再給你起點和終點,請問其中有多少條互不重疊的從起點到終點的最短路,即互相沒有公共邊的最短路個數 可以有公共點 用過邊的不能再用。輸入第一行有乙個t,表示樣例個數。t 60 每個樣例第一行有兩...