小美有一个长度为 n 的数组 a_1,a_2,...,a_n ,他希望构造一个非负整数 x ,满足 x 的二进制位数不超过数组中最大值的二进制位数(特别的 0 二进制位数为 1 )。 随后,可对数组 a 重复进行以下操作,以使所有元素的总和最大: 选择一个下标 i ,同时将 a_i 修改为 a_ior x ,将 x 修改为 a_iand x 。 在使元素总和达到最大值的前提下,要求所有操作前初始的 x 尽可能小。请输出最大总和及对应的最小 x 。 按位或: or 表示按位或运算,即对两个整数的二进制表示的每一位进行逻辑或操作。 按位与: and 表示按位与运算,即对两个整数的二进制表示的每一位进行逻辑与操作。
每个测试文件均包含多组测试数据。 第一行输入一个整数 T(1≤ T≤ 1000) ,代表数据组数; 对于每组测试数据,输入如下: 第一行输入一个整数 n(1≤ n≤ 500) ,表示数组的长度; 第二行输入 n 个整数 a_1,a_2,...,a_n(0≤ a_i<2^30) ,表示数组 a 的元素。
对于每组测试数据,新起一行。输出两个整数,用空格分隔:第一个整数为数组可以达到的最大总和;第二个整数为在达到最大总和的前提下初始最小的 x 。
2 2 3 3 3 1 2 3
6 0 9 3
考点:贪心
数据规模 n ≤ 500 | 限制 1 秒 / 256MB | 标准输入输出
推荐方向:贪心
每一步都取当前最优,靠问题性质保证局部最优能拼成全局最优。
思路框架(贪心 通法 · 非本题专属)
实现要点:贪心题关键在于排序规则:按什么关键字排序决定了策略是否正确。
复杂度:时间 O(n log n)(含排序) | 空间 O(1) ~ O(n)
该范式的通法易错点
对照本题
样例 1
2 / 2 / 3 3 / 3 / 1 2 36 0 / 9 3解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2025年秋招-美团-全栈岗-第二批笔试;2025年秋招-美团-算法策略端-第二批笔试;2025年秋招-美团-前端&移动端-第二批笔试 等。