小X有2n个数,编号为0到2n-1,第i(0≤i<2n)个数为 ai。 对于 S ⊆ {0, 1, …, 2ⁿ − 1},定义 f(S) 为集合 S 中所有数的二进制按位与。特别地,若 S 为空集,则 f(S) = 2ⁿ − 1。 定义两个 {0, 1, …, 2ⁿ − 1} 的子集 P、Q(可以为空)构成的有序对 (P, Q) 是特别的,当且仅当P ∩ Q = ∅ 且 f(P) = f(Q)。定义有序对 (P, Q) 的权值为编号包含在 P ∪ Q 内的所有数的乘积,即∏~i ∈ P ∪ Q~ aᵢ。特别地,若 P ∪ Q = ∅,则权值为 1。 小 X 想知道所有特别的有序对的权值之和,请你帮助他求出这个值。由于答案可能较大,你只需要输出答案对 998,244,353取模后的结果。
从文件 set.in 中读入数据。 本题包含多组测试数据。 输入的第一行包含两个非负整数 c, t,分别表示测试点编号与测试数据组数。c = 0 表示该测试点为样例。 接下来依次输入每组测试数据。 对于每组测试数据: 第一行包含一个正整数 n,表示有 2ⁿ 个数。 第二行包含 2ⁿ 个非负整数 a₀, a₁, …, a2ⁿ−1。
输出到文件 set.out 中。 对于每组测试数据,输出一行一个整数,表示所有特别的有序对的权值之和对 998 244 353 取模后的结果。
0 2 2 1 2 3 4 3 1 1 1 1 1 1 1 1
117 2091
【样例 1 解释】 该样例共包含两组测试数据。 对于第一组测试数据,以下是所有特别的有序对 (P,Q): P = ∅,Q = ∅,权值为 1 P = ∅,Q = {3},权值为 a₃ = 4 P = {3},Q = ∅,权值为 a₃ = 4 P = {0},Q = {1,2},权值为 a₀ × a₁ × a₂ = 6 P = {0},Q = {1,2,3},权值为 a₀ × a₁ × a₂ × a₃ = 24 P = {0,3},Q = {1,2},权值为 a₀ × a₁ × a₂ × a₃ = 24 P = {1,2},Q = {0},权值为 a₀ × a₁ × a₂ = 6 P = {1,2,3},Q = {0},权值为 a₀ × a₁ × a₂ × a₃ = 24 P = {1,2},Q = {0,3},权值为 a₀ × a₁ × a₂ × a₃ = 24 故答案为1 + 4 + 4 + 6 + 24 + 24 + 6 + 24 + 24 = 117。
【样例 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 ≤ 3。