洛谷 P3385 模板 負環

2022-06-12 09:36:11 字數 774 閱讀 4512

題目鏈結

一開始沒注意到他的邊是非負就是雙向的。所以一直wa……

用spfa。bfs判斷是否有乙個點進入次數超過n即可。

#include #include

#include

#include

#include

#include

#define maxn 2005

using

namespace

std;

typedef pair

pii;

queue

q;//

pii的第乙個值代表距離,第二個值代表點。根據距離排序 .注意兩個》 >之間要加空格否則會被認為是移位

intt,n,m,s,temp1,temp2,te***,dis[maxn],vis[maxn],cnt[maxn];

vector

map1[maxn];//

pii的第乙個值為連的點,第二個值為到該點的距離。

int spfa(int

s) }}}

return0;

} int

main()

if(spfa(1

)) printf(

"yes\n");

else

printf(

"no\n");

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

map1[i].clear();

}return0;

}

洛谷 P3385 模板 負環

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

洛谷 P3385 負環

聽說這道題有好幾種做法?超神搜尋?bfs?spfa?奇怪的貪心?管理員更新了資料,別想了qwq.可能是我太菜了,想不出吧.說說我的解法 我們就做普通的spfa,不要加什麼酸辣粉slf優化,會超時 判斷每個點進佇列的的次數,如果次數超過了n次,說明存在負環.證明,自己想一想也許就可以了吧,如果乙個點多...

《題解》洛谷P3385 模板 負環

題目鏈結 判斷一張圖中是否存在關於頂點1的負環 可以用spfa跑一遍,存在負環的情況就是點進隊大於n次 因為在存在負環的情況下,spfa會越跑越小,跑進死迴圈 在最差的情況下,存在的負環長度是 n 1個頂點 這麼長 顯然這是n個點長度,但不是環 這就是乙個環,n 1個點的長度 所以 很明了了,只需將...