set.cpp / 2 s / 512 MiB
小 X 有 个数,编号为 到 ,第 () 个数为 。
对于 ,定义 为集合 中 所有数的二进制按位与。特别地,若 为空集,则 。
定义两个 的子集 (可以为空)构成的有序对 是 特别的 当且仅当 且 。定义有序对 的 权值 为 编号 包含在 内的所有数的乘积,即 。特别地,若 ,则有序对 的权值为 。
小 X 想要知道所有特别的有序对的权值之和,请你帮助他求出这个值。由于答案可能较大,你只需要求出答案对 取模后的结果。
本题包含多组测试数据。
输入的第一行包含两个非负整数 ,分别表示测试点编号与测试数据组数。 表示该测试点为样例。
接下来依次输入每组测试数据,对于每组测试数据:
第一行包含一个正整数 ,表示有 个数。
第二行包含 个非负整数 。
对于每组测试数据,输出一行一个整数,表示所有特别的有序对的权值之和对 取模后的结果。
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。
set/set2.in
set/set2.ans
该样例满足测试点 2 的约束条件。
【样例 3】
见选手目录下的 set/set3.in 与 set/set3.ans。
set/set3.in
set/set3.ans
该样例满足测试点 3 的约束条件。
【样例 4】
见选手目录下的 set/set4.in 与 set/set4.ans。
set/set4.in
set/set4.ans
该样例满足测试点 9 的约束条件。
【数据范围】
对于所有测试数据,保证:
::cute-table{tuack}
特殊性质 A: 保证至多存在 24 个 满足 。
特殊性质 B: 保证对于所有 ,均有 。
附加文件来自于 QOJ。