暴力列舉/spfa/bellman-ford/奇怪的貪心/超神搜尋
輸入格式:
第一行乙個正整數t表示資料組數,對於每組資料:
第一行兩個正整數n m,表示圖有n個頂點,m條邊
接下來m行,每行三個整數a b w,表示a->b有一條權值為w的邊(若w<0則為單向,否則雙向)
輸出格式:
共t行。對於每組資料,存在負環則輸出一行"ye5"(不含引號),否則輸出一行"n0"(不含引號)。
輸入樣例#1:複製
23 41 2 2
1 3 4
2 3 1
3 1 -3
3 31 2 3
2 3 4
3 1 -8
輸出樣例#1:複製
n0ye5
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行。對於每組資料,...