CF1635A.Min Or Sum

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Min Or Sum

题目描述

给出一个含有 nn 个元素的序列 aa

对于每次操作,你可以选择两个不同的整数 i,j(1ijn)i, j(1 \le i \le j \le n),将 aia_i 替换为 xx、将 aja_j 替换为 yy

为了不破坏这个序列,你需要保证 aiaj=xya_i|a_j = x|y,且 x,yx,y 均为非负整数。(其中 | 表示按位或运算

你需要通过上述操作,最小化此序列的和 (a1+a2+a3+...+an)(a_1+a_2+a_3+...+a_n)

请输出经过任意次操作后,序列的最小和。

输入格式

此题包含多个测试用例,第一行一个正整数 tt 表示测试用例的数量。

对于每个测试用例:

  • 第一行一个整数 nn,代表序列的元素数量。

  • 第二行 nn 个整数 a1,a2,...,an(0ai230)a_1,a_2,...,a_n(0 \le a_i \le 2^{30})

输出格式

对于每个测试用例,输出一个整数表示序列中元素和的最小值。

说明/提示

在第一个测试用例中,你可以进行如下操作:

  • 选择 i=1,j=2i=1,j=2,修改 a1a_111,修改 a2a_222。因为 13=121|3 = 1|2,所以是有效的操作。此时序列变为 [1,2,2][1, 2, 2]

  • 选择 i=2,j=3i=2,j=3,修改 a2a_200,修改 a3a_322。因为 22=022|2 = 0|2,所以是有效的操作。此时序列变为 [1,0,2][1, 0, 2]

我们可以证明其最小和为 1+0+2=31+0+2=3

对于第二个测试用例,我们不需要任何操作。

Translated by lym12321\texttt{Translated by lym12321}

样例

4
3
1 3 2
5
1 2 4 8 16
2
6 6
3
3 5 6
3
31
6
7

在线编程 IDE

建议全屏模式获得最佳体验