POJ3259負環判定

2022-05-13 09:56:15 字數 850 閱讀 7960

題意:有n個頂點,m條邊,然後有w個洞,過每個洞的時間為-ti,求是否會時光倒流

分析:就是求是否存在負圈,用bellman-floyd判定是否存在負圈即可,注意是無向圖,所以路徑是雙向可達的

1 #include 2 #include 3 #include 4 #include 

5 #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 }

view code

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的結...