1. 程式人生 > >[專題-圖論]最短路

[專題-圖論]最短路

輸出 用途 鄰接表 currency tro htm hdu 3416 arr 例題

kuangbin最短路專題鏈接:https://cn.vjudge.net/contest/231324

專題題解

寫題解的就是比較好的題了

1 / 3 POJ 2387 Til the Cows Come Home
1 / 1 POJ 2253 Frogger 找間隔最小的路徑
1 / 6 POJ 1797 Heavy Transportation
1 / 1 POJ 3268 Silver Cow Party
1 / 1 POJ 1860 Currency Exchange
1 / 1 POJ 3259 Wormholes
1 / 1 POJ 1502 MPI Maelstrom
1 / 4 POJ 3660 Cow Contest 傳遞閉包的應用
1 / 7 POJ 2240 Arbitrage 判斷是否存在可循環圈
1 / 6 POJ 1511 Invitation Cards 往返最短路
1 / 3 POJ 3159 Candies 差分約束
0 / 0 POJ 2502 Subway 輸入的處理很折磨人
1 / 1 POJ 1062 昂貴的聘禮
1 / 3 POJ 1847 Tram
1 / 9 LightOJ 1074 Extended Traffic 註意連通性
0 / 4 HDU 4725 The Shortest Path in Nya Graph 超時
1 / 9 HDU 3416 Marriage Match IV 最短路+最大流 找各最短路的所有邊
1 / 4 HDU 4370 0 or 1 考慮連通性
1 / 5 POJ 3169 Layout 差分約束

各算法的用途&原理&例題

Dijskra O(mlogn)

[筆記-圖論]Dijkstra

用途 原理 例題
正權單源最短路
往返最短路 把邊反向,再跑一次最短路 POJ-1511 Invitation Cards, CF EducationalRound40-D Fight Against Traffic
差分約束系統 不等式各變量系數為一時,可看做滿足最短路的條件 POJ-3159 Candies, POJ-3169 Layout
找各節點間隔最小的路徑 類似動態規劃,轉移前一節點的間隔狀態 POJ-2253 Frogger
找有限制的最短路 類似動態規劃,轉移前一節點的限制狀態,在松馳前做判斷 POJ-1062 昂貴的聘禮
判斷某條邊是否被最短路包含 求往返最短路,滿足distA[from]+distB[to]+e.dist==distA[B] CF EducationalRound40-D Fight Against Traffic, HDU-3416 Marriage Match IV
找AB間各路徑最大邊權的最小值的最小值 松馳操作改為取最小/最大即可 UVA-10048 Audiophobia

BellmanFord O(kn)

[筆記-圖論]Bellman-Ford

用途 原理 例題
判斷是否存在可循環圈 POJ-2240 Arbitrage
含負權的單源最短路

Floyd O(n^3)

[筆記-圖論]Floyd

用途 原理 例題
含負權的多源最短路 雖然不能判斷可循環圈,但不存在的情況下是最短路?
有向圖傳遞閉包 就是間接可達 UVA-247 Calling Circles, POJ-3660 Cow Contest
找AB間各路徑最大邊權的最小值的最小值 松馳操作改為取最小/最大即可 UVA-10048 Audiophobia

需要註意的地方

每次做題時要考慮的

  1. 是否存在可循環圈
  2. 連通性
  3. 數據範圍 & 數據規模 & 浮點數精度
  4. 預處理邊權,點集,邊個數等
  5. 用鄰接表
  6. 別手打輸出形式-_-
  7. 一定要首先考慮好int還是longlong, 不然寫好後修改會出現奇奇怪怪的WA

[專題-圖論]最短路