UVA 558 BF 判斷負環

2021-06-26 22:36:01 字數 769 閱讀 5827

題目的意思就是以後可以通過蟲洞進行穿越,每次穿越,有可能變到未來,也有可能變到過去,但是穿越的單向的.

有個科學家想經過多次穿越,會到很久很久以前看看大本鐘的歷史.

問能不能實現.

就是單向圖,問是否存在負環.

首先用bellman-ford演算法,迭代n - 1次算出最短路.

然後在遍歷,如果經過n - 1迭代後,圖中的點還能鬆弛出更短的路,說明存在負環.

因為沒有負環的圖,有n個點,經過n - 1次迭代,肯定能算出每個點的最短路.

ac**:

#includeconst int n = 1005;

const int m = 2005;

const int inf = 0x3f3f3f3f;

int d[n];

int u[n];

int v[n];

int w[m];

int n,m;

int main ()

d[0] = 0 ;

for (int i = 0 ; i < m ;i++)

for (int k = 0 ; k < n - 1 ;k++)

} bool ans = false;

for (int i = 0 ; i < m ;i++)

} if (ans)

printf("possible\n");

else

printf("not possible\n");

}}

F Wormholes spfa判斷負環

傳送門 題意 艾高比較差qaq。意思是農夫發現了蟲洞,他發現從乙個點到另乙個點會花費一些時間,存在一些點到點可以到退時間。問farm是否可以通過乙個迴路回到過去。就是問是否存在一條負權的邊。思路 spfa判斷負環模板即可,要注意,有些蟲洞是可以來回的,所以一條邊要新增兩次 題目中給出,是雙向路徑 既...

SPFA判斷負環

說明一下,這個例題用下面的方法是過不了的,只能過掉25分因為資料加強了,而我不會寫bfs版spfa判負環 但是我覺得會dfs版的就行了,反正對於隨機資料dfs版的絕對吊打bfs版的 只不過這道題的資料不是隨機的,是有人惡意新增的 我們利用dfs強行進行鬆弛操作 我感覺已經不能叫他spfa了 如果在一...

關於spfa 判斷負環

判斷給定的有向圖中是否存在負環。利用spfa 演算法判斷負環有兩種方法 1 spfa 的dfs 形式,判斷條件是存在一點在一條路徑上出現多次。2 spfa 的bfs 形式,判斷條件是存在一點入隊次數大於總頂點數。如下 法 1 spfa 的dfs 形式 include include include ...