題目的意思就是以後可以通過蟲洞進行穿越,每次穿越,有可能變到未來,也有可能變到過去,但是穿越的單向的.
有個科學家想經過多次穿越,會到很久很久以前看看大本鐘的歷史.
問能不能實現.
就是單向圖,問是否存在負環.
首先用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 ...