我某日在颓废的时候突然思索出这个傻叉的数据结构。。。可以在比O(N)小的时间内在线支持几乎一切询问(不能修改)。。。
但非常的傻叉。。。。
比如说考虑这个问题。。给出一个数列,每次询问从第l个到第r个中有几个不同的元素。。
。。。一定要在线。。
那么。。我们把这个数列分成L块,然后对每个第l块到第r块这样的子序列储存一个当前的结果。
然后计算的时候。在能使用的信息基础上,可以在O(N/L)的时间完成询问,然后再恢复。。
注意到需要的空间和预处理时间是L^2N的。。。所以L不能取很大。。比如说取个N^0.25次方。。
就能在N^1.5完成预处理,N^0.75完成询问了。。。
这。。。似乎对几乎一切的问题都适用。。。但速度可以去死了。。
sf
Orz
这显然是神犇表