#1423. 区间异或

区间异或

区间异或

题目描述

给出一个正整数序列a1a_{1},a2a_{2},\cdots,ana_{n}。求有多少个区间[l,r][l,r]1lrn1 \leq l \leq r \leq n)的异或和不小于给定的正整数KK,即求满足下列条件的区间[l,r][l,r]总数:

$$a_{l} \oplus a_{l+1} \oplus a_{l+2} \oplus \cdots \oplus a_{r-1} \oplus a_{r} \geq K $$

其中\oplus表示异或。

输入格式

本题的每个测试点包含多组测试数据。

第一行,一个整数TT,表示数据组数。

  • 2T2T行包含两个整数nnKKnn为正整数序列中元素个数,KK的含义如上所述。
  • 2T+12T+1行包含nn个正整数a1a_{1},a2a_{2},\cdots,ana_{n},即正整数序列中的元素。

输出格式

输出TT行,每行一个正整数表示答案。

数据范围与提示

  • 对于20%20\%的数据,n<2000n < 2000
  • 对于100%100\%的数据,1<T<51 < T < 51n1061 \leq n \leq 10^{6}0K1090 \leq K \leq 10^{9}1ai1091 \leq a_{i} \leq 10^{9}。数据有一定梯度。

样例

3
3 1	
1 2 3
3 2
1 2 3
3 3
1 2 3
5
3
2