A92172.极差最大化

入门

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

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

  • 选择下标 i,ji,j1i,jn1\le i,j\le n)和位编号 bbb0b\ge 0),将 aia_iaja_j二进制表示中的第 bb 位进行交换。

请你在若干次操作后,使

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

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

说明:

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

输入格式

  • 第一行一个整数 tt1t1281\le t\le 128),表示测试用例数量。
  • 对于每个测试用例:
    • 第一行一个整数 nn3n5123\le n\le 512);
    • 第二行 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n0ai<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:不做操作已最优,答案 10=11-0=1
  • 样例 22:数组无法通过操作改变,答案 55=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],之后无法再提升,答案 70=77-0=7
首页