#GD23J2T1. 卤蛋对撞(eggs)

卤蛋对撞(eggs)

题目背景

2023第一届粤港澳信息学创新大赛初中组复赛T1

注意:本题是以文件读写的方式进行评测,请在代码中使用freopen()等文件读写的方式进行输入输出。

文件名请参考本标题下方的“文件IO:”后面的内容

题目描述

卤蛋对撞是鸭嘴兽们最喜欢的游戏。

具体来说,鸭嘴兽会把nn 个卤蛋放成一排,每个卤蛋会有一个美味值ai(1in)a_i (1 \le i \le n), 表示这个卤蛋是否卤得入味。nn个卤蛋排成一排后,裁判会给出一个目标美味值kk。鸭嘴兽可以选择一个长度大于11 的区间[L,R][L,R],轻轻拨一下第LL 个卤蛋,卤蛋会向右倒下撞到第L+1L+1 个卤蛋,然后第L+1L+1 个卤蛋又会向右倒下撞到第L+2L+2 个卤蛋 ... ... 直到第R1R-1 个卤蛋撞到第RR 个卤蛋,鸭嘴兽会避免下一次对撞的发生。由于每个卤蛋的调味料都不一样,对撞难免会影响美味值。具体来说,当第ii 个卤蛋撞击第i+1i+1 个卤蛋后,第 i+1i+1 个卤蛋的美味值ai+1a_{i+1} 会变成 aiai+1a_i \oplus a_{i+1}, 其中aiai+1a_i \oplus a_{i+1} 表示aiai+1 \lfloor \frac{a_i}{a_{i+1}} \rfloor, 即向下取整除法,如 72=72=37 \oplus 2 = \lfloor \frac{7}{2} \rfloor =3 。 区间[L,R][L,R] 的所有卤蛋完成对撞后,第RR 个卤蛋的美味值将变为(((aLaL+1)aL+2)aR)(((a_L \oplus a_{L+1}) \oplus a_{L+2}) \oplus a_R), 如果其值为kk, 则鸭嘴兽可以获得游戏的胜利。

现在鸭嘴兽想知道,给定一排卤蛋和目标美味值,能获得游戏胜利的区间有多少个。

输入格式

第一行是一个整数nn, 表示卤蛋的个数。

第二行是nn 个正整数,第ii 个数表示第ii 个卤蛋的美味值aia_i

第三行是一个正整数kk, 表示目标美味值。

输出格式

一行,一个整数,表示答案。

3
8 4 2
2
2

说明/提示

【样例1解释】

选择区间 [1,2][1, 2],第 22 个卤蛋的美味值是 84=848 \oplus 4 = \lfloor \frac{8}{4} \rfloor ,能获得游戏胜利。

选择区间 [1,3][1, 3] ,第 33 个卤蛋的美味值是 (84)2=1(8 \oplus 4) \oplus 2 = 1,不能获得游戏胜利。

选择区间 [2,3][2, 3] ,第 33 个卤蛋的美味值是 42=24 \oplus 2 = 2 ,能获得游戏胜利。

所以能获得游戏胜利的区间有 22 个。

【数据范围】

对于 30%30\% 的数据,满足 n500,k500,ai104 n \leq 500, k \leq 500, a_i \leq 10^4

对于 50%50\% 的数据,满足 n104,k104,ai104 n \leq 10^4, k \leq 10^4, a_i \leq 10^4

对于另外 20%20\% 的数据,满足 ai>1a_i > 1

对于 100%100\% 的数据,满足 $ n \leq 5 \times 10^5 , k \leq 10^9 , a_i \leq 10^9$ 。

30
2 2 1 1 4 4 4 4 1 2 3 4 1 1 2 2 1 3 2 2 3 4 4 4 4 4 2 1 3 4
2
8