一种期望线性的静态区间查询

水群时看到了,记一下。

形式地,设查询的信息构成半群。

分块,将信息分成 \(B\) 块,则每块长度为 \(\dfrac{n}{B}\)

考虑暴力处理每块的前缀、后缀答案,暴力处理每个整块间的答案,取 \(B=O(\sqrt{n})\),预处理复杂度是 \(O(n)\) 的。

现在,对于跨越整块的询问,我们可以 \(O(1)\) 查询,但是,对于块内的询问,我们只能暴力查询。

不过,块内询问出现的概率为 \(O(\dfrac{1}{B})\),单次询问的复杂度为 \(O(B)\),因此期望下复杂度是 \(O(1)\) 的。

即使有毒瘤出题人试图卡掉这种做法,先不提是否存在替代,我们可以微调块长,使得难以构造大量块内查询,同时这类数据可能让暴力通过。

posted @ 2024-11-21 11:37  weilycoder  阅读(2)  评论(0编辑  收藏  举报