A92173.按位与排序

普及-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

Welcome24ever 有一排卡片,上面写着从 00n1n-1 每个数各一次(也就是一个排列)。现在这些卡片还没排好从小到大。

他发明了一条“交换规则”:只要选中两张卡片 pip_ipjp_ji<ji<j),并且它们做按位与(AND)得到的结果刚好等于某个数 XX,他就可以把这两张卡片交换位置。
如果通过若干次这样的交换,能把卡片排成 [0,1,2,,n1][0,1,2,\ldots,n-1],我们就说这个排列是 XX-可排序” 的。

你的任务是:在所有让这个排列变得可排序的 XX 中,找出最大的那个 XX

输入格式

有多组测试数据。
第一行一个整数 tt,表示测试组数。
接下来每组:

  • 第一行一个整数 nn
  • 第二行是一个长度为 nn 的排列 p1,p2,,pnp_1,p_2,\ldots,p_n(每个数都在 [0,n1][0,n-1] 且互不相同)。保证这个排列一开始不是升序。

输出格式

对每组数据,输出一个整数:让该排列变为升序时,可能的最大 XX

输入输出样例

  • 输入#1

    4
    4
    0 1 3 2
    2
    1 0
    7
    0 1 2 3 5 6 4
    5
    0 3 2 1 4

    输出#1

    2
    0
    4
    1

说明/提示

数据范围

  • 1t1041 \le t \le 10^4
  • 2n21052 \le n \le 2\cdot 10^5
  • 0pin10 \le p_i \le n-1 且两两不同
  • 所有测试中 nn 的总和 2105\le 2\cdot 10^5

解释

  • 第 1 组里,用 X=2X=2 时,只交换一对就能排好序;XX 还能取 00,但题目要“最大”的 XX,所以答案是 22
  • 第 2 组里,只能直接交换 1100,这需要 X=0X=0,所以答案是 00
首页