水群时看到了,记一下。
形式地,设查询的信息构成半群。
分块,将信息分成 \(B\) 块,则每块长度为 \(\dfrac{n}{B}\)。
考虑暴力处理每块的前缀、后缀答案,暴力处理每个整块间的答案,取 \(B=O(\sqrt{n})\),预处理复杂度是 \(O(n)\) 的。
现在,对于跨越整块的询问,我们可以 \(O(1)\) 查询,但是,对于块内的询问,我们只能暴力查询。
不过,块内询问出现的概率为 \(O(\dfrac{1}{B})\),单次询问的复杂度为 \(O(B)\),因此期望下复杂度是 \(O(1)\) 的。
即使有毒瘤出题人试图卡掉这种做法,先不提是否存在替代,我们可以微调块长,使得难以构造大量块内查询,同时这类数据可能让暴力通过。
标签:期望,暴力,静态,dfrac,复杂度,查询,线性,询问 From: https://www.cnblogs.com/weily09/p/18560267