AT_s8pc_3_c XORパズル
题目描述
由于样例 3 存在问题,已进行了重新评测。对此深感抱歉。(21:01)
square1001 从 Atcoder 公司收到了一个长度为 $n$ 的数列 $a$。数列 $a$ 的所有元素互不相同。
他曾经构造了一个数列 $b$,但现在已经不记得具体内容了。不过,他还记得以下几点:
- 数列 $b$ 的所有元素互不相同。
- 数列 $b$ 的所有元素都包含在 $a$ 中。
- 由于 square'1001' 喜欢二进制,他还记得 $b_1 \oplus b_2 \oplus \cdots \oplus b_r = k$($r$ 是数列 $b$ 的长度)。这里 $\oplus$ 表示异或运算。
square1001 想知道,作为数列 $b$ 可能的方案有多少种。
然而,他正打算用暴力枚举的方法来解决这个问题,你发现后,决定帮他计算出来。
请你计算,square'1001' 可能构造的数列 $b$ 有多少种?
由于答案可能非常大,请输出对 $1,000,000,007$ 取模后的结果。
输入格式
输入通过标准输入给出,格式如下:
> $n\ k$
> $a_1\ a_2\ \cdots\ a_n$
- 第 1 行包含数列 $a$ 的长度 $n$ 和数列 $b$ 的异或值 $k$,两者以空格分隔。
- 第 2 行包含数列 $a$ 的 $n$ 个元素,以空格分隔。
输出格式
请输出一个整数,表示 square'1001' 可能构造的数列 $b$ 的方案数。
结果需对 $1,000,000,007$ 取模。
说明/提示
## 约束条件
- $1 \le n \le 100$
- $1 \le a_i, k \le 255$
- $i \neq j \Rightarrow a_i \neq a_j$
## 子任务
子任务 1【50 分】
- 满足 $1 \le n \le 4$。
子任务 2【170 分】
- 满足 $1 \le n \le 20$。
子任务 3【180 分】
- 满足 $1 \le n \le 100$。
## 样例解释 1
作为数列 $b$ 的可能方案有 $b = \{1\}$、$\{2, 3\}$、$\{3, 2\}$,共 3 种。
## 样例解释 2
作为数列 $b$ 的可能方案有 $b = \{5, 7, 8\}$、$\{5, 8, 7\}$、$\{7, 5, 8\}$、$\{7, 8, 5\}$、$\{8, 5, 7\}$、$\{8, 7, 5\}$,共 6 种。
## 样例解释 3
请输出对 $1,000,000,007$ 取模后的结果。
由 ChatGPT 4.1 翻译