#C2026XSR3C. 异或(xor)

异或(xor)

异或(xor)

题目描述

苗苗整理了一段能量记录。记录由 nn 个能量片组成,第 ii 个能量片上写着一个非负整数 aia_i。

苗苗需要把这段记录从左到右划分成若干个非空连续片段。对于一个片段,它的校验值定义为片段中所有数的按位异或和。为了让每个片段都能被稳定保存,苗苗要求每个片段的校验值都不超过 kk。

苗苗想知道,一共有多少种不同的划分方案。两种方案不同,当且仅当存在一个位置,在其中一种方案中被切开,而在另一种方案中没有被切开。

输入格式

第一行两个整数 n,kn,k。

第二行 nn 个整数 a1,a2,…,ana_1,a_2,\dots,a_n。

输出格式

输出一行一个整数,表示答案对 109+710^9+7 取模的结果。

数据范围

对于全部的数据,满足 1≤n≤2×1051\le n\le 2\times 10^5,0≤ai,k<2300\le a_i,k<2^{30}。

测试点编号 n≤n\le 特殊性质
11 2020 无
2∼32\sim 3 30003000
4∼64\sim 6 2×1052\times 10^5 0≤ai,k<280\le a_i,k<2^8
7∼107\sim 10 无

样例文件