題意:有n個頂點,m條邊,然後有w個洞,過每個洞的時間為-ti,求是否會時光倒流
分析:就是求是否存在負圈,用bellman-floyd判定是否存在負圈即可,注意是無向圖,所以路徑是雙向可達的
1 #include 2 #include 3 #include 4 #includeview code5 #include 6 #include 7 #include
8 #include 9 #include 10 #include 11 #include 12 #include 13
using
namespace
std;
14const
int maxn=8000;15
const
int inf=1
<<25;16
struct
edge;
19edge es[maxn];
20int
n,m,w;
21int
d[maxn];
2223
bool
find_negative_loop()
33//
cout<34}35
}36return
false;37
}3839int
main()
4053
for(int i=m*2;i2;i++)
5459
if(find_negative_loop()) cout<
yes"
<
60else cout<
<
62return0;
63 }
POJ 3259 有負權的最短路 SPFA
include include define m 600 define oo 999999 int n,m,w int map m m int dis m int time m 記錄某個點入隊的次數 int que m m bool v m 是否更新過 bool inq m 是否已經在佇列中 int...
基礎最短路六 POJ3259
poj3259 n為500,m為2500 題目大意 有乙個人在n個點之間走來走去。n個點之間有雙向的道路,也有單向的 可以回到幾秒前的蟲洞。問 存不存在一種走法,走來走去走來走去,走回到起點的時候,時間剛好在自己出發以前?又是乙個spfa尋找負環問題!輸入蟲洞的時候,權改為負數。輸出的是 yes 和...
POJ3259 bellman ford判定負環
在判斷圖的方向的問題時,需要仔細看一下 有向圖 無向圖相當於有向圖 雙向有向圖 有向圖,在bellman ford的鬆弛階段只需要更新弧尾端點就行。無向圖相當於雙向的有向圖 弧尾就是弧頭。在這裡解釋一下鬆弛操作的問題 1.對於有向弧a b 我們的鬆弛操作實質上是用a的結點值和ab弧的權值來推導b的結...