题目要求对于每个询问 x,计算
$$\sum_{\substack{1 \leq i \leq n \\(x \& i)=i}} a_{i}$$也就是把所有满足 i 的二进制 1 位都出现在 x 中的下标 i 的权值加起来。
给定一个整数 n 和一个长度为 n 的序列 a1,a2,...,an 。接下来有 q 次询问,每次给出一个整数 x,需要计算
∑1≤i≤n(x&i)=iai
即所有满足 (x & i)=i 的下标 i 所对应的 ai 之和。
名词解释:
符号 “&” 表示按位与运算(对两个数的二进制逐位与)对应位均为 1 时结果位为 1 ,否则为 0 。例如 5(1012)与 3(0112) 满足 5 & 3=1(0012) 。
输入包含多组测试数据。第一行包含整数 T(1≤T≤105) 表示测试组数。每组数据描述如下:
第一行包含两个整数 n,q(1≤n,q≤2×105) ;
第二行包含 n 个整数 a1,a2,...,an(−10≤ai≤109);
第三行包含 9 个整数 x1,x2,...,xq(0≤k≤2×105)。
保证所有测试中 n+q 的总和不超过 5×105 。
对于每组测试数据,按询问顺序输出 q 行,每行一个整数,表示对应查询的答案。
输入
3
5 3
1 2 3 4 5
0 7 5
3 2
10 -5 7
3 2
6 3
0 1 2 3 4 5
6 4 7
输出
0
15
10
12
-5
9
3
15
说明
样例一:
x=0 时无合法下标,和为 0 ; x=7 时 i∈{1,2,3,4,5} 都满足,和为 15 ; 2=5 时 i∈{1,4,5},和为 10 。
样例二:
2=3 时 i∈{1,2,3},和为 12 ; x=2 时仅 i=2 , 和为 5 。
样例三:
2=6 时 i∈{2,4,6},和为 9 ; x=4 时 i=4 ,和为 3 ; a=7 时 i∈{1,2,3,4,5,6},和为 15 。