Press

Press

不妨以位置为 \(x\) 轴,时间为 \(y\) 轴。

当一个机器人到达点 \(A\) 后,如果可以继续走到 \(B\) 当且仅当 \(|x_A - x_B| \leq |y_A - y_B|\)

将其在 \(T=10^9\) 时刻可以按到的按钮用区间表示出来 \([x_A-(T-y_A),x_A+(T-y_A)]\) 记做 \(S_A\)

简单画图不难发现上述条件等价于 \(S_B \in S_A\)

我们将所有的区间求出,按照左端点排序,将右端点看成一个数列。

每一个最长不上升子序列都可以被一个机器人按完,现在求需要多少个机器人。

导弹拦截即可,答案为最长上升子序列的长度。

时间复杂度 \(O(n\log n)\)

参考代码

posted @ 2024-06-06 11:32  DeepSeaSpray  阅读(6)  评论(0编辑  收藏  举报