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 翻译