QOJ.ac

QOJ

Limite de temps : 1.0 s Limite de mémoire : 256 MB Points totaux : 100 Hackable ✓

#10225. 鲍勃叔叔与异或和

Statistiques

给定两个整数数组 $A$ 和 $B$,请确定 $A$ 中非空位置子集的数量,使得这些位置在 $A$ 中对应值的异或和(XOR Sum)不包含 $B$ 中的任何子掩码。更正式地说,如果所选 $A$ 中位置子集的异或和为 $S$,且 $S$ 的所有子掩码集合为 $\{m_1, m_2, \dots, m_k\}$,则对于所有 $1 \le i \le k$,满足 $m_i \notin B$。

由于有效的非空子集数量可能非常大,你需要输出结果对 $1,000,000,007$ ($10^9 + 7$) 取模后的值。

位置子集 $\{p_1, p_2, \dots, p_k\}$ 的异或和定义为:$S = A[p_1] \oplus A[p_2] \oplus \dots \oplus A[p_k]$,其中 $\oplus$ 表示按位异或运算符。

数字 $n$ 的子掩码是指所有在 $m$ 中置位的位在 $n$ 中也置位的任何数字 $m$。

输入格式

输入包含多个测试用例。第一行包含一个整数 $T$ ($1 \le T \le 100$),表示测试用例的数量。每个测试用例格式如下:

  • 第一行包含两个正整数 $N$ ($1 \le N \le 10^5$) 和 $K$ ($1 \le K \le 10$),分别表示数组 $A$ 和 $B$ 的长度。
  • 第二行包含 $N$ 个空格分隔的整数 $a_1, a_2, \dots, a_n$ ($0 \le a_i \le 2^{31} - 1$)。
  • 第三行包含 $K$ 个空格分隔的整数 $b_1, b_2, \dots, b_k$ ($0 \le b_i \le 2^{31} - 1$)。

你可以认为所有测试用例的 $N$ 之和不超过 $10^5$。

输出格式

对于每个测试用例,输出一行,包含答案对 $1,000,000,007$ ($10^9 + 7$) 取模后的结果。

样例

输入 1

3
1 1
1
1
2 1
1 2
4
2 1
1 3
1

输出 1

0
3
1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.