SPFA 靜態鄰接表 模板

2021-05-23 11:11:58 字數 305 閱讀 5795

spfa — shotest path faster algorithm,是乙個效率很高的求最短路徑的演算法,也可以說是bellman-ford演算法的優化版。

具體做法是先把起點放入乙個佇列中。每次取出隊頂元素,並pop,看跟該點相鄰的其他點是否能夠鬆弛,如果可以鬆弛,改變量值,如果該點不在佇列中,則把能該點push到佇列中,直到隊列為空。

為了速度更快,可以用鄰接表來儲存,這樣,找與起點相鄰的點的速度就會很快!

若要判負環路,則記錄乙個點的入隊次數,若超過邊數,則有負權環。

自己用spfa+靜態鄰接表寫的hdu_2544:可以用作模板

靜態鄰接表模板

在做圖有關的題目,在一些情況下鄰接矩陣耗費空間較大 動態開闢的鄰接表又耗時耗記憶體,這時候你可能需要乙個靜態鄰接表!靜態鄰接表在各種圖的演算法當中也是有一席之地的,比如利用堆優化的dij演算法求最短路 spfa等等 下面給出我的靜態鄰接表模板 includeusing namespace std c...

通道安全(SPFA演算法鄰接表)大致模板

通道安全 時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 alpha 機構有自己的一套網路系統進行資訊傳送。情報員 a 位於節點 1,他準備將乙份情報 傳送給位於節點 n 的情報部門。可是由於最近國際紛爭,戰事不斷,很多通道都有可能被遭到監 視或破壞。經過測試分析,alpha...

spfa演算法鄰接表實現

東信杯 廣西大學第一屆程式設計競賽 同步賽 題意 在有向圖選取一條路徑使得路徑中邊權乘積最短,其中邊 權必定為2的正整數次冪。考慮最短路模型是邊權相加,那麼我們只需要將乘法轉化為加法 也就是將邊權對2取對數,再計算最短路得到最短長度ans,最後 我們的答案就是2 ans 1e9 7 最後計算冪時會溢...