atcoder#ARC122D. [ARC122D] XOR Game

[ARC122D] XOR Game

题目描述

黒板に 2N 2N 個の整数が書かれており,そのうち i i 番目の整数は Ai A_i です.

Alice と Bob がゲームをします. ゲームは N N ラウンドにわたって行われ,各ラウンドでは以下の操作を行います.

  • まず,Alice が黒板に書かれている整数を一つ選び,消す. ここで選ばれた整数を x x とする.
  • 次に,Bob が黒板に書かれている整数を一つ選び,消す. ここで選ばれた整数を y y とする.
  • x  y x\ \oplus\ y の値をノートに記録する.ただしここで \oplus はビットごとの排他的論理和を表す.

最終的に,黒板からは全ての整数が消え去り,ノートには N N 個の整数が記録されます. ゲームのスコアは,ノートに記録された整数の最大値です. Alice の目標はスコアを最大化することで,Bob の目標はスコアを最小化することです. 両者が最適に行動した場合,ゲームのスコアがいくつになるか求めてください.

输入格式

入力は以下の形式で標準入力から与えられる.

N N A1 A_1 A2 A_2 \cdots A2N A_{2N}

输出格式

答えを出力せよ.

题目大意

黑板上有 2n2n 个整数 a12na_{1\dots 2n}。每轮操作,Alice 先从黑板上选择一个数 xx 并将其擦掉,Bob 再从黑板上选择一个数 yy 并将其擦掉,然后把 xyx\oplus y 写在笔记本上。游戏的分数是最终笔记本上 nn 个数的最大值。Alice 的目标是将分数最大化,Bob 的目标是将分数最小化。请求出两者采取最佳行动的情况下,游戏的分数是多少。

  • 1n2×1051\le n\le 2\times 10^50ai<2300\le a_i<2^{30}

Translated by

https://www.luogu.com.cn/user/203623

2
0 1 3 5
4
2
0 0 0 0
0
10
974654030 99760550 750234695 255777344 907989127 917878091 818948631 690392797 579845317 549202360 511962375 203530861 491981716 64663831 561104719 541423175 301832976 252317904 471905694 350223945
268507123

提示

制約

  • 1  N  2 × 105 1\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 0  Ai < 230 0\ \leq\ A_i\ <\ 2^{30}
  • 入力される値はすべて整数である

Sample Explanation 1

例えば,以下のようなゲームの進行が考えられます.なお,この進行が最適な手順であるとは限りません. - ラウンド 1 1 : - Alice が A1=0 A_1=0 を選択する. - Bob が A3=3 A_3=3 を選択する. - ノートに 0  3=3 0\ \oplus\ 3=3 が記録される. - ラウンド 2 2 : - Alice が A4=5 A_4=5 を選択する. - Bob が A2=1 A_2=1 を選択する. - ノートに 5  1=4 5\ \oplus\ 1=4 が記録される. - ゲームのスコアが max(3,4)=4 \max(3,4)=4 になる.