题解:

非常巧妙的一道题。
直接搜索的话是log^3的,如何优化?
“<=3”是问题的突破口。
我们按照位数划分,0-15为一块,16-31为一块,以此类推,一共分成了4块。
由于误差<=3,则设当前查询为x,若数组中有y和x相似,则y和x必然有一块完全相等!
我们把每一个数组中的y挂到对应的块的下标上,每次查询的时候直接把对应下标内的所有数都判断一遍即可。
由于数据随机,可以看成每一个块中每一种元素的出现次数相等,期望比较次数为4n/(2^16)次。
复杂度O(4
n/(2^16)*m)