首先设置一个数对 (t,x)(t,x)(t,x) 代表某一枚金币时刻 ttt 时位于坐标 xxx
那么,要想从 (t1,x1)(t_1,x_1)(t1 ,x1 ) 赶到 (t2,x2)(t_2,x_2)(t2 ,x2 ),同时 x1≠x2x_1 \neq x_2x1 =x2
必须满足三个条件:
* t2>t1t_2 > t_1t2 >t1
不能 t2<t1t_2 < t_1t2 <t1 ,因为没有这种表示方法
也不能 t2=t1t_2 = t_1t2 =t1 因为无法在同一时间内处于两个位置
* x1≤x2x_1 \leq x_2x1 ≤x2
因为只能往右走/不动
* 时间足够走到:x2−x1≤t2−t1x_2-x_1 \leq t_2 - t_1x2 −x1 ≤t2 −t1
因为 x2−x1x_2-x_1x2 −x1 算出的是最小从坐标 x1x_1x1 赶到 x2x_2x2 所需时间
而 t2−t1t_2 - t_1t2 −t1 算出的是最多可留有从坐标 x1x_1x1 赶到 x2x_2x2 的时间
两者相比,如果 x2−x1≤t2−t1x_2-x_1 \leq t_2 - t_1x2 −x1 ≤t2 −t1 就代表能先获得金币 111,再获得金币 222
移项一下:
原式:x2−x1≤t2−t1x_2 - x_1 \leq t_2 - t_1x2 −x1 ≤t2 −t1
两边同时加 t1t_1t1 :x2−x1+t1≤t2x_2 - x_1 + t_1 \leq t_2x2 −x1 +t1 ≤t2
两边同时减 x2x_2x2 :t1−x1≤t2−x2t_1 - x_1 \leq t_2 - x_2t1 −x1 ≤t2 −x2
全部推导完毕后:
记 vi=ti−xiv_i=t_i-x_ivi =ti −xi
如果 xj≥xix_j \geq x_ixj ≥xi 且 vj≥viv_j \geq v_ivj ≥vi 且 tj>tit_j > t_itj >ti
就代表可以先收集金币 iii 再收集金币 jjj
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
先设置某种食材酸度为 aaa,甜度为 bbb
那么,如果 a=ba = ba=b
就说明 a−b=0a-b=0a−b=0