这题第一个突破点是:由于第i个城市建加油站需2^(i-1),这比前i-1个城市都建加油站耗费的还多,所以可以倒过来枚举,如果前n-1城市都建加油站而第n个城市不建能满足要求的话,那么最终结果肯定是不需要在n建加油站的,否则就需要建;接下来继续考虑在这种情况下前n-2个城市全建、n-1不建是否能满足要求,进而确定n-1城市的状态。依此类推,就能用O(N)的时间确定每一个城市是否建站的状态。对于一个确定的状态,用广搜进行判断即可,不过细节还是挺多的,例如有些城市(不建加油站)可以从加油站过去,但是无法再次回到加油站。比赛的时候代码不是我打的,也没有打印带回来,现在懒得再打一次贴上来了,有时间再说吧~~