AT_abc386_e.[ABC386E] Maximize XOR

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个长度为 NN 的非负整数序列 AA 和一个整数 KK。保证二项式系数 (NK)≤106\dbinom{N}{K} \leq 10^6。

从序列 AA 中选择 KK 个不同的元素,求出这些元素的异或和的最大值。

简单来说,就是求 max⁡1≤i1<i2<…<iK≤NAi1⊕Ai2⊕…⊕AiK\underset{1 \leq i_1 < i_2 < \ldots < i_K \leq N}{\max} A_{i_1} \oplus A_{i_2} \oplus \ldots \oplus A_{i_K}。

在这里,异或运算(XOR)是这样定义的:对于两个非负整数 AA 和 BB,其结果 A⊕BA \oplus B 是一个二进制数,对于每个 2k (k≥0)2^k \ (k \geq 0) 位,如果 AA 和 BB 在这一位中恰好只有一个是 11,则结果在这一位是 11,否则为 00。

举个例子:3⊕5=63 \oplus 5 = 6,在二进制下:011⊕101=110011 \oplus 101 = 110。通常来说,kk 个整数 p1,…,pkp_1, \dots, p_k 的异或值可以表示为 (⋯((p1⊕p2)⊕p3)⊕⋯⊕pk)(\cdots ((p_1 \oplus p_2) \oplus p_3) \oplus \cdots \oplus p_k),并且顺序不会影响结果。

输入格式

从标准输入中获取输入,格式如下:

N K A1 A2 … ANN \ K \ A_1 \ A_2 \ \ldots \ A_N

输出格式

请输出那个最大可能的异或值。

输入输出样例

  • 输入#1

    4 2
    3 2 6 4

    输出#1

    7
  • 输入#2

    10 4
    1516 1184 1361 2014 1013 1361 1624 1127 1117 1759

    输出#2

    2024

说明/提示

  • 1≤K≤N≤2×1051 \leq K \leq N \leq 2 \times 10^5
  • 0≤Ai<2600 \leq A_i < 2^{60}
  • (NK)≤106\dbinom{N}{K} \leq 10^6
  • 所有输入均为整数

示例解释 1

从 (3,2,6,4)(3, 2, 6, 4) 中选出任意两个不同的数,有以下六种组合方式:

  • 选择 (3,2)(3, 2):异或值为 3⊕2=13 \oplus 2 = 1。
  • 选择 (3,6)(3, 6):异或值为 3⊕6=53 \oplus 6 = 5。
  • 选择 (3,4)(3, 4):异或值为 3⊕4=73 \oplus 4 = 7。
  • 选择 (2,6)(2, 6):异或值为 2⊕6=42 \oplus 6 = 4。
  • 选择 (2,4)(2, 4):异或值为 2⊕4=62 \oplus 4 = 6。
  • 选择 (6,4)(6, 4):异或值为 6⊕4=26 \oplus 4 = 2。

因此,最大异或值为 77。

本翻译由 AI 自动生成

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

首页