[神秘 trick] 减半警报器

完了遇见究极神秘shaber trick 了。

题目:GYM

我们发现可以近乎 \(O(1)\) 判断合法,但是非常难维护集合。
这个时候非常难搞,是时候发挥人类智慧了。

我们知道,一个设备 \(x\) 被至多被三个观测台观测。
那么,不妨假设它们为 \(a,b,c\)

我们想对于每个自身的权值 \(w\) 设一个阈值,超过阈值就给它拿出来检测一下。

这个值是多少呢?明显的,是 \(\lceil\frac{w}{k}\rceil\),在这一下一定不会违法。

这就是“减半警报器” trick,我们设置很多个警报器和阈值,我们发现,每次一个数都会减少自身的 \(\frac{1}{3}\),减少到 \(0\) 明显是 \(\log V\) 级别的,这启示我们建一个 set 给这些警报器全部丢进去,然后维护即可。时间复杂度 \(O(n\log n\log V)\)。但是 CF 上就是会 TLE,怎么会是呢。

Upd:需要对警报器进行懒删除,否则会炸

posted @ 2024-07-22 21:07  g1ove  阅读(30)  评论(0编辑  收藏  举报