正解:SPFA+DP
将POJ3463中maxDist(Target)由minDist(Target)+1改为minDist(Target+K)即可。判断0环,需要对每个节点建立下标为maxDist-minDist的Vis数组,若其被重复访问,则有0环,无解。
为何不能用Dijkstra?
本题有0边,实际意义上,一个节点可以通过0边跳到已被放松过的节点上使它及以后的Cnt增加,但是dijkstra规定一个节点放松以后就不能再放松了,所以不行。