#98. [NOI 2025 Day 2] 集合

[NOI 2025 Day 2] 集合

题目描述

小 X 有 2n2^n 个数,编号为 00 到 2n−12^n - 1,第 i (0≤i<2n)i\ (0 \le i < 2^n) 个数为 aia_i。

对于 S⊆{0,1,…,2n−1}S \subseteq \{0, 1, \ldots, 2^n - 1\},定义 f(S)f(S) 为集合 SS 中 所有数的二进制按位与。特别地,若 SS 为空集,则 f(S)=2n−1f(S) = 2^n - 1。

定义两个 {0,1,…,2n−1}\{0, 1, \ldots, 2^n - 1\} 的子集 P,QP, Q(可以为空)构成的有序对 (P,Q)(P, Q) 是 特别的 当且仅当 P∩Q=∅P \cap Q = \varnothing 且 f(P)=f(Q)f(P) = f(Q)。定义有序对 (P,Q)(P, Q) 的 权值 为 编号 包含在 P∪QP \cup Q 内的所有数的乘积,即 ∏i∈P∪Qai\prod_{i \in P \cup Q} a_i。特别地,若 P∪Q=∅P \cup Q = \varnothing,则有序对 (P,Q)(P, Q) 的权值为 11。

小 X 想要知道所有特别的有序对的权值之和,请你帮助他求出这个值。由于答案可能较大,你只需要求出答案对 998,244,353998,244,353 取模后的结果。

输入格式

本题包含多组测试数据。

输入的第一行包含两个非负整数 c,tc, t,分别表示测试点编号与测试数据组数。c=0c = 0 表示该测试点为样例。

接下来依次输入每组测试数据,对于每组测试数据:

第一行包含一个正整数 nn,表示有 2n2^n 个数。

第二行包含 2n2^n 个非负整数 a0,…,a2n−1a_0, \ldots, a_{2^n - 1}。

输出格式

对于每组测试数据,输出一行一个整数,表示所有特别的有序对的权值之和对 998,244,353998,244,353 取模后的结果。

样例

0 2
2
1 2 3 4
3
1 1 1 1 1 1 1 1
117
2091

样例 2

见选手目录下的 set/set2.in 与 set/set2.ans。

该样例满足测试点 22 的约束条件。

样例 3

见选手目录下的 set/set3.in 与 set/set3.ans。

该样例满足测试点 33 的约束条件。

样例 4

见选手目录下的 set/set4.in 与 set/set4.ans。

该样例满足测试点 99 的约束条件。

数据范围

对于所有测试数据,保证:

  • 1≤t≤31 \le t \le 3;
  • 2≤n≤202 \le n \le 20;
  • 对于所有 0≤i<2n0 \le i < 2^n,均有 0≤ai<998,244,3530 \le a_i < 998,244,353。
测试点编号 n≤n \le 特殊性质
11 44 B
22 无
33 88 B
44 无
55 1010 B
66 无
7,87, 8 1212 B
99 无
10∼1210 \sim 12 1616 B
13,1413, 14 无
15,1615, 16 2020 AB
17,1817, 18 A
19∼2119 \sim 21 B
22∼2522 \sim 25 无
  • 特殊性质 A:保证至多存在 2424 个 ii 满足 ai≠0a_i \neq 0。
  • 特殊性质 B:保证对于所有 0≤i<2n0 \le i < 2^n,均有 ai≠998,244,352a_i \neq 998,244,352。