我们考虑一个更广义的情况,不是选取个区间,而是要选取个区间. 设是各个二进制位数的上界(在本题中可取),再设数组的前缀异或,表示从小到大的第个二进制位,那么题目所求可以列为如下式子:

我们可以引入由如下定义的来表示上式递归的结构

继续推式子:

时,上式还可以写为的递推式如下:

我们为方便计算,再定义一个东西:

其中第四个参数

利用滚动数组交替计算即得答案