A92172.极差最大化

入门

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

给定一个长度为 nn 的数组 aa。你可以进行任意多次如下操作(也可以一次都不做):

  • 选择下标 i,ji,j(1≤i,j≤n1\le i,j\le n)和位编号 bb(b≥0b\ge 0),将 aia_i 与 aja_j 的二进制表示中的第 bb 位进行交换。

请你在若干次操作后,使

max⁡(a)  −  min⁡(a)\max(a)\;-\;\min(a)

尽可能大,并输出这个最大值。

说明:

  • 位从右向左编号,最低位为第 00 位;
  • 可以认为任意数的二进制表示前面都有无限多个前导 00;
  • 例如:4=10024=100_2 与 3=1123=11_2
    • 交换第 00 位后得到 1012=5101_2=5 与 102=210_2=2;
    • 交换第 22 位后得到 0002=0000_2=0 与 1112=7111_2=7。
      这里,max⁡(a)\max(a) 表示数组 aa 的最大元素,min⁡(a)\min(a) 表示数组 aa 的最小元素。

输入格式

  • 第一行一个整数 tt(1≤t≤1281\le t\le 128),表示测试用例数量。
  • 对于每个测试用例:
    • 第一行一个整数 nn(3≤n≤5123\le n\le 512);
    • 第二行 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n(0≤ai<10240\le a_i<1024)。
  • 保证所有测试用例中 nn 的总和不超过 512512。

输出格式

对每个测试用例,输出一个整数,表示在允许操作下 max⁡(a)−min⁡(a)\max(a)-\min(a) 的最大可能值。

输入输出样例

  • 输入#1

    4
    3
    1 0 1
    4
    5 5 5 5
    5
    1 2 3 4 5
    7
    20 85 100 41 76 49 36

    输出#1

    1
    0
    7
    125

说明/提示

  • 样例 11:不做操作已最优,答案 1−0=11-0=1。
  • 样例 22:数组无法通过操作改变,答案 5−5=05-5=0。
  • 样例 33:可选 i=2, j=5, b=1i=2,\ j=5,\ b=1,数组变为 [1,0,3,4,7][1,0,3,4,7],之后无法再提升,答案 7−0=77-0=7。

输入解题思路,AI测评打分。不知道怎么写?

首页