Luogu P3385 模板 負環

2022-06-09 02:57:09 字數 1408 閱讀 7631

暴力列舉/spfa/bellman-ford/奇怪的貪心/超神搜尋

輸入格式:

第一行乙個正整數t表示資料組數,對於每組資料:

第一行兩個正整數n m,表示圖有n個頂點,m條邊

接下來m行,每行三個整數a b w,表示a->b有一條權值為w的邊(若w<0則為單向,否則雙向)

輸出格式:

共t行。對於每組資料,存在負環則輸出一行"ye5"(不含引號),否則輸出一行"n0"(不含引號)。

輸入樣例#1:複製

2

3 41 2 2

1 3 4

2 3 1

3 1 -3

3 31 2 3

2 3 4

3 1 -8

輸出樣例#1:複製

n0

ye5

n,m,|w|≤200 000;1≤a,b≤n;t≤10 建議複製輸出格式中的字串。

此題普通bellman-ford或bfs-spfa會tle

dfs版spfa判負環,注意輸出有坑點,輸出ye5 和 n0 而不是 yes 和 no

1

//2023年3月4日22:19:48

2 #include 3 #include 4 #include 5 #include 6

using

namespace

std;78

const

int n = 400001;9

const

int m = 400001;10

11struct

edgee[m];

14int

fir[n], edge_num;

1516

void addedge(int x, int y, int

z)22

23int

t, n, m;

24int

dis[n], vis[n], flag;

25void spfa(int

a)30 dis[e[i].to] = dis[a] +e[i].len;

31spfa(e[i].to);32}

33}34 vis[a] = 0;35

}3637int

main()else

addedge(x, y, z);49}

50for(int i=1; i<=n; i++)

53if(flag) puts("

ye5"

);54

else puts("n0"

); 55}56

57return0;

58 }

Luogu P3385 模板 負環

暴力列舉 spfa bellman ford 奇怪的貪心 超神搜尋 輸入格式 第一行乙個正整數t表示資料組數,對於每組資料 第一行兩個正整數n m,表示圖有n個頂點,m條邊 接下來m行,每行三個整數a b w,表示a b有一條權值為w的邊 若w 0則為單向,否則雙向 輸出格式 共t行。對於每組資料,...

luogu P3385 模板 負環

給定乙個 n 個點的有向圖,請求出圖中是否存在從頂點 1 出發能到達的負環。負環的定義是 一條邊權之和為負數的迴路。這個就是 luogu 上正常的判斷負環,那我們就按這 spfa 判斷負環的方法做就可以了。include include include using namespace std str...

luogu P3385 模板 負環

暴力列舉 spfa bellman ford 奇怪的貪心 超神搜尋 輸入格式 第一行乙個正整數t表示資料組數,對於每組資料 第一行兩個正整數n m,表示圖有n個頂點,m條邊 接下來m行,每行三個整數a b w,表示a b有一條權值為w的邊 若w 0則為單向,否則雙向 輸出格式 共t行。對於每組資料,...