#CF2211D. 1868~AND 数组还原
1868~AND 数组还原
题目描述
对于一个长度为 的序列 ,我们定义它的 AND 数组 如下:
$$f(a)_k = \sum_{1 \le i_1 < i_2 < \dots < i_k \le n} a_{i_1} \mathbin{\&} a_{i_2} \mathbin{\&} \dots \mathbin{\&} a_{i_k}$$对所有 ,其中 表示按位与运算。
换句话说, 是 中所有长度为 的子序列的按位与之和。
序列 是未知的。但给你一个长度为 的序列 ,满足对所有 :
请你根据 还原出序列 。
输入格式
第一行一个整数 ,表示测试用例个数。
每个测试用例:
第一行一个整数 ,表示序列长度。
第二行 个整数 。
输出格式
对于每个测试用例,输出一行 个整数 。 如果有多个合法答案,输出任意一个即可。
3
3
0 0 0
5
22 24 10 1 0
10
130 585 1560 2730 3276 2730 1560 585 130 13
0 0 0
5 3 6 1 7
13 13 13 13 13 13 13 13 13 13
数据规模与约定
所有测试用例的 之和不超过 。
保证一定存在合法解。
来源:Codeforces Round 1088 (Div. 1 + Div. 2)