http://acm.hdu.edu.cn/showproblem.php?pid=1317
大致題意:有n個房間,每個房間都有對應的能量值(可正可負),現在從1出發要到達n,初始能量為100,問是否能夠達到n點,到達n的條件是中間及最後的能量值都要大於0.
思路:若不考慮環,那麼求最長路判斷是否大於0即可。若存在負環,對求最長路也沒影響;但當存在正環時,最長路就不存在了。可用spfa判斷,當某點入隊超過n次,那麼它必定在環中,直接將其dis置為INF,並不再將其近隊列。最後若能到達n則可行,否則失敗。
#include
#include
#include
#include
#include