题意:http://acm.pku.edu.cn/JudgeOnline/problem?id=3411
寻找最短路径,但这个最短路径和通常意义上的不太一样,因为可以预付款,因此可能为了便宜的预付款而绕道而行。每个节点可能访问多次,每条边也可能访问多次。
我的做法是DFS,卡节点访问数量。因为多绕一次道是为了增加至少一个预付款的节点,因此当一个节点的访问数量已经是N(我觉得应该是N-1,但那样WA,不懂),那就没有必要再来了。
别人的做法:我见到一个还不错的解法,为每个节点记录上次访问时的优惠点信息state,如果绕了一圈回来state没变,那就没必要走下去了,否则选择当前费用最小的一条边继续深搜。