二分答案,初始有 x 的钱,转换为判定性问题。不妨先考虑链的情况,一个结论是,每次将里程换成钱时要么全部换完,要么换到的钱能恰好使用到下一次兑换;否则考虑调整,设两次相邻的兑换分别在 x,y,且在 x 处既没有把里程用尽,到 y 时钱也没有用完,则必然可以取一个 \varepsilon>0,将 x 处兑换的里程数增加/减小 \varepsilon,必有一者更优。
将每个点细拆成到达和离开时刻,则在每个兑换点上,要么其离开时刻里程为 0,要么在下一个兑换点的到达时刻钱为 0。离开时刻里程为 0 的兑换点称为 A 类特殊点,将到达时刻钱为 0 的点称为 B 类特殊点,则相邻两特殊点间至多隔了一个兑换点,那一个兑换点的情况这仅在两特殊点分别为 A、B 时产生。则令 f_i,g_i 分别为 i 作为 A/B 类特殊点时,离开时最多拥有多少钱/里程;转移考察 (i,j) 为 \{\tt A,B\}^2 的四种情况。