【题解】「CSP模拟赛」雨天 rain
【题解】「CSP模拟赛」雨天 rain
考场上打了一个动态开点线段树,但是被卡空间了😭:record
先将当前的雨量,画成折线。下称:斜线为一条斜率不为 \(0\) 的线段
考虑到每次操作可能带来两种影响:
- \(x>0\):最多新增一条斜线,或者合并若干条斜线;
- \(x<0\):删除若干条斜线。
由此,发现雨量形成的图像一定是不减的。
(进一步发现,她和 \(y=x\) 这个图像的差值也是不减的,于是就可以线段树上二分了。
但是仔细想一下,每次修改最多新增一条斜线,而且每个斜线至多被删除一次。
而且只会在最开头的地方操作,用栈维护,可以做到均摊 \(\mathcal O(q)\)。
(其实考场上也想过均摊的做法,几乎都想出来了,但是觉得线段树更板一点,就直接开打了😭。

浙公网安备 33010602011771号