文章目录

IOI2023 Day2 T2 超车 做题笔记

发布于

题意

n+1n + 1 辆巴士,编号为 00nn,它们的速度都是固定的。前 nn 辆巴士有固定的出发时间。
在公路上,这些巴士不能超车(相对位置不能改变),所以当快的车追上慢的车之后,需要跟慢车保持同一速度行驶。
mm 个点,在这些点上可以超车(同一时间到这个点的车按照行驶速度排序,快车在前,慢车在后)。
现在有 qq 个询问,每次询问如果巴士 nn 从给定的点出发,到终点的时间是多少。

给两张图方便理解:

1n,m103,1q1061 \leq n, m \leq 10^3, 1 \leq q \leq 10^6

题解

首先注意到,我们不需要管速度比巴士 nn 快的车,也不需要管在巴士 nn 后面的比它慢的车。它们都不会对巴士 nn 造成影响,因为巴士 nn 永远不会等它们。

于是,我们可以得到这样一个图

这是一个分段线性函数,分 O(n)\mathcal O\left(n\right) 段。

直接维护这个函数。复杂度 O(nmlogn+qlogn)\mathcal O\left(nm \log n + q \log n\right)


暂无评论

发表评论