CF2118C Make It Beautiful
题目描述
给定一个包含 $ n $ 个整数的数组 $ a $。我们定义一个数字 $ x $ 的**美丽值**为其二进制表示中 $ 1 $ 的个数。我们定义一个数组的美丽值为其所有数字美丽值的总和。
在一次操作中,你可以选择一个下标 $ i $($ 1 \le i \le n $)并将 $ a_i $ 增加 $ 1 $。
在最多进行 $ k $ 次操作后,求数组可能达到的最大美丽值。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 $ t $($ 1 \le t \le 5000 $)。接下来是每个测试用例的描述。
每个测试用例的第一行包含两个整数 $ n $ 和 $ k $($ 1 \le n \le 5000 $,$ 0 \le k \le 10^{18} $)——数组的长度和最大操作次数。
每个测试用例的第二行包含 $ n $ 个整数 $ a_1, a_2, \ldots, a_n $($ 0 \le a_i \le 10^9 $)——表示数组 $ a $。
保证所有测试用例的 $ n $ 之和不超过 $ 5000 $。
输出格式
对于每个测试用例,输出一个整数,表示最多进行 $ k $ 次操作后数组的最大美丽值。
说明/提示
在第一个测试用例中,$ a = [0, 1, 7, 2, 4] $。
- 第一次操作选择 $ i = 1 $,新数组为 $ a = [1, 1, 7, 2, 4] $。
- 第二次操作选择 $ i = 4 $,新数组为 $ a = [1, 1, 7, 3, 4] $。
该数组的美丽值为 $ 1 + 1 + 3 + 2 + 1 = 8 $。另一个具有相同美丽值的有效解是 $ [0, 1, 7, 3, 5] $。在第三个测试用例中,$ a = [3] $。由于不要求必须使用恰好 $ k $ 次操作,最优解是不进行任何操作。