#P13275. [NOI2025] 集合

    ID: 15149 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 显示难度NOI/NOI+/CTS 上传者: 标签>2025NOI容斥原理快速沃尔什变换 FWT集合幂级数,子集卷积

[NOI2025] 集合

背景

set.cpp / 2 s / 512 MiB

题目描述

小 X 有 2n2^n 个数,编号为 00 到 2n−12^n - 1,第 ii (0≤i<2n0 \leq 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。

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

【样例 3】

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

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

【样例 4】

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

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

【数据范围】

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

  • 1≤t≤31 \leq t \leq 3;
  • 2≤n≤202 \leq n \leq 20;
  • 对于所有 0≤i<2n0 \leq i < 2^n,均有 0≤ai<998,244,3530 \leq a_i < 998,244,353。

::cute-table{tuack}

测试点编号 n≤n \leq 特殊性质
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: 保证至多存在 24 个 ii 满足 ai≠0a_i \neq 0。

特殊性质 B: 保证对于所有 0≤i<2n0 \leq i < 2^n,均有 ai≠998,244,352a_i \neq 998,244,352。

附加文件来自于 QOJ。