题解:P11232 [CSP-S 2024] 超速检测(民间数据)

· · 题解

挺麻烦的一个题,赛时调了 2h

先写暴力

### 考虑优化掉 $O(nm)

p 从小到大排序,设 v_{i, q} 是第 i 辆车在 q 点的速度 ,则对于第 i 辆车 A

对于 a_i<0 ,显然可以二分,整体时间复杂度 O(n\log{m})

考虑优化掉 O(2^mnm)

- 如果 $a_i<0$, $X_i=[P,Q]$ ,其中 $P$ 是最小的 $j$ 满足 $v_{i, p_j}>V$ , $Q$ 是最大的 $j$ 满足 $v_{i, p_j}>V$ 。 - 如果 $a_i\space{\geq}\space0$, $X_i=[P,m]$ ,其中 $P$ 是最小的 $j$ 满足 $v_{i, p_j}>V$ 。 因为 $v_{i, p_j}$ 在 $p_j\space{\geq}{\space}d_i$ 上具有单调性,所以二分求 $X$,时间复杂度 $O(n\log{m})$ 。 此时问题转化成 P1803 线段覆盖,整体时间复杂度 $O(n\log{m})$ 。 代码略(