P3619 魔法
考虑完成两个任务 \(1\) 和 \(2\),设当前时间为 \(T\)。
先完成任务 \(1\) 的条件为 \(T>t_1\) 且 \(T+b_1>t_2\);先完成任务 \(2\) 的条件为 \(T>t_2\) 且 \(T+b_2>t_1\)。
假设先完成任务 \(1\) 的条件更松,那么有 \(\max(t_1,t_2-b_1)<\max(t_2,t_1-b_2)\)。
注意此时并没有考虑 \(T\) 时刻大于 \(0\) 的条件。当先完成任务 \(1\) 且 \(b_1<0<b_2\) 时是可能出错的,但显然并不存在,所以这种比较函数肯定是先做 \(b>0\) 的任务再做 \(b<0\) 的任务的。
当 \(b>0\) 时,比较函数简化为 \(t_1<t_2\);当 \(b<0\) 时,比较函数简化为 \(t_2-b_1<t_1-b_2\to t_2+b_2<t_1+b_1\)。两种情况均满足传递性和严格弱序,所以原比较函数是正确的。

浙公网安备 33010602011771号