题解:P11027 [COTS 2020] 餐厅 Restoran

· · 题解

缝合怪。

首先考虑性质 A 怎么做。这就是 P1248 加工生产调度,结论是最优解满足 \forall 1 \le i < j \le n, \min(a_i,b_j) \le \min(a_j,b_i)。但是这个条件不满足传递性,所以分 a_i < b_ia_i = b_ia_i > b_i 讨论一下,得到排序方式。然后依次考虑每个人,记 p_ia_i 的前缀和,q_i[1,i] 的答案,则有 q_i = \max(q_{i-1}, p_i) + b_i

然后考虑正解。先把所有人离线下来按照上述规则排序,记 {\rm rnk}_ii 在新序列中的位置,那么方案就是将客人按照 \rm rnk 排序。

接下来我们要加速求答案的过程,考虑把 p_iq_i 的转移写成 (\max,+) 卷积的形式:

[q_i, p_i] = [q_{i-1}, p_{i-1}] \times \begin{bmatrix} b_i & -\infin \\ a_i+b_i & a_i \\ \end{bmatrix}

我们使用线段树维护矩阵乘法即可。