題意是指 從1 到 N 能否保證 到達每個點的時候 能量都為正數。
起點 1 初始100 點能量。
輸入是 從 1 ~ N , 分別是 能量,能到m個房間, 分別是 a1,a2,a3,…,am
可以給每個能到達的點 而 產生的邊賦權,即能量值。
SPFA 求最長路的變形,出現負環不怕,出現正環就需要一點改動。
vis[]標記是否需要入隊,d[] 表示能量,que[] 表示入隊次數。
如果出現正環(que[v]>=n),表明一定能 保證到達每個點的時候都是正能量。
這時候直接 將 d[v] 賦最大值(因為可以一直循環獲得正能量),並下一次的時候不再入隊。
最後 d[n]>0 表明能行。
//C++ 0ms
#include
#include
#include
#include
#include
#include
#include