Day17 spfa判斷負環

2021-10-05 22:35:22 字數 643 閱讀 5252

今天返校了。。。

還和室友開了幾把黑。。。

今天只寫了spfa判負環

傳送門

這個spfa判負環呢

其實就是用了最短路徑條數》=n

如果最短路徑條數大於等於n了,那麼必然有n+1個點構成其最短路

所以必定有負環

值得注意的是

d陣列並不需要賦初值

因為負環它是小於0的

所以即使賦了初值

如果存在負環的話

cnt依舊會衝到n的

所以沒必要

#include#include#includeusing namespace std;

const int n=2010,m=1e4+10;

int w[m],e[m],ne[m],n,m,h[n],idx,d[n],cnt[n];

bool st[n];

void add(int a,int b,int c)

bool spfa()

while(q.size())

if(!st[j])}}

}return 0;

}int main()

if(spfa())else

return 0;

}

睡覺了

SPFA判斷負環

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

關於spfa 判斷負環

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

P3385 模板 負環 spfa判斷負環

p3385 模板 負環 暴力列舉 spfa bellman ford 奇怪的貪心 超神搜尋 尋找乙個從頂點1所能到達的負環,負環定義為 乙個邊權之和為負的環。輸入格式 第一行乙個正整數t表示資料組數,對於每組資料 第一行兩個正整數n m,表示圖有n個頂點,m條邊 接下來m行,每行三個整數a b w,...