Luogu P3385 模板 負環

2021-09-30 16:44:30 字數 1235 閱讀 6695

暴力列舉/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\leq 2000n≤2000m\leq 3000m≤3000-10000\leq w\leq 10000−10000≤w≤10000t\leq 10t≤10建議複製輸出格式中的字串。 本題資料感謝@negiizhao的精心構造,請不要使用玄學演算法本題資料有更新

spfa求負環,當乙個點經過次數==n時跳出

#includeusing namespace std;

const int n=1e6+5;

int n,m,l,r,d[n],num[n],q[n];

int cnt,he[n],to[n],nxt[n],w[n];

bool f,fl[n];

int read()

while(ch>='0'&&ch<='9')

ret=(ret<<1)+(ret<<3)+ch-'0',ch=getchar();

return f?-ret:ret;

}inline void add(int u,int v,int k)

int main()

f=0;

l=1,r=2,q[1]=1; d[1]=0;

while(l!=r)

num[v]++;

if(num[v]==n) }}

if(f) break;

} if(!f) puts("no");

} return 0;

}

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行。對於每組資料,...

Luogu P3385 模板 負環

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