注意不是讨论区题解,我并不知道我的证明有没有道理。如果是错的请大家指出。
我来感性证明一下最高赞题解那个 max{fi+gn−i+1} 是紧的上界(即可以取到),感觉这个其实是这个做法困扰我好久的原因。
我们只考虑只有一个 B 机器的情况,机器之间互相取 max 的正确性依题意是显然的。我们把这个 B 机器的效率记为 t,然后把每个工件在 A 工序中经过的时间记为 Pi(包含 A 工序加工时间和等待时间)
我们发现一个工件从时刻 0 到最后一个工件加工完全进程结束的时间均可以表示为 Pi+kit+ci,ci 为 i 零件加工完 A 工序后等待进入 B 工序的时间和 i 经过 A 工序后 B 机器不在运转的时间之和(这两种情况都会导致取不到上界)。现在我们要证明的就是存在一个工件 x,使得 cx=0。
我们将等待过程刻画成一个有向图,如果存在一个时刻 u 因为 v 使得 cu 增加了,那么把 u 向 v 连一条有向边,且这条边应是“本源”的,即若 P 因为 R 时增加了 c 值,那么 Q 一定不会因为 P 增加 c 值,其归根结底还是因为 R 在增加 c 值。那么这个图显然是一个 DAG 图(你可以枚举一下有环的情况发现都很荒谬或者都与边的本原性相悖),那么一定存在一个点的出度为 0,那么这个点的 ci 就是 0。