CF587E Duff as a Queen

题目描述

Duff 是她所在国家 Andarz Gu 的女王。她是一个竞赛编程的爱好者。因此,当她看到她的部长 Malek 有空时,给了他一个由 $n$ 个非负整数 $a_1,a_2,\ldots,a_n$ 组成的序列,并要求他在这个序列上执行 $q$ 个查询。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF587E/13c69dfd57d48044360a9b122095311a6f41fd5f.png) 查询有两种类型: 1. 给定数字 $l, r$ 和 $k$,Malek 需要对每个 $l \leq i \leq r$ 执行 $a_i := a_i \oplus k$($\oplus$ 表示按位异或运算)。 2. 给定数字 $l$ 和 $r$,Malek 需要告诉 Duff 序列 $a_l, a_{l+1}, \ldots, a_r$ 的得分。 一个序列 $b_1, b_2, \ldots, b_k$ 的得分是其不同 Kheshtak 的个数。对于该序列,非负整数 $w$ 是其 Kheshtak 当且仅当存在其某个子序列 $b_{i_1}, b_{i_2}, \ldots, b_{i_x}$(可为空),满足 $w = b_{i_1} \oplus b_{i_2} \oplus \ldots \oplus b_{i_x}$($1 \leq i_1 < i_2 < \ldots < i_x \leq k$,可 $x=0$)。如果子序列为空,则 $w=0$。 与 Duff 不同,Malek 不是程序员。因此他向你求助。请帮助他完成这些查询。

输入格式

输入的第一行包含两个整数 $n$ 和 $q$($1 \leq n \leq 2 \times 10^5$,$1 \leq q \leq 4 \times 10^4$)。 第二行包含 $n$ 个整数,分别为 $a_1, a_2, ..., a_n$,用空格分隔($0 \leq a_i \leq 10^9$,$1 \leq i \leq n$)。 接下来的 $q$ 行,每行描述一个查询。每行首先是一个整数 $t$($1 \leq t \leq 2$),表示查询类型。如果 $t=1$,则该行接着三个整数 $l$,$r$ 和 $k$。否则,接着两个整数 $l$ 和 $r$。($1 \leq l \leq r \leq n$,$0 \leq k \leq 10^9$)

输出格式

对于每个第二种类型($t=2$)的查询,输出一行答案。

说明/提示

在第一个查询中,我们要求序列 $1,2,3,4,2$ 的所有 Kheshtak,为:$0,1,2,3,4,5,6,7$。 在第三个查询中,我们要求序列 $1,10,3,4,2$ 的所有 Kheshtak,为:$0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15$。 在第五个查询中,序列仅有 $0$,其所有 Kheshtak 只有 $0$。 由 ChatGPT 5 翻译