题意是指 从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