CF1983F.array-value

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

你有一个非负整数数组 a1,a2,…,ana_1, a_2, \ldots, a_n。

一个长度 ≥2\ge 2 的子数组 a[l,r]=[al,al+1,…,ar]a[l, r] = [a_l, a_{l+1}, \ldots, a_r] 的值定义为 min⁡(ai⊕aj)\min(a_i \oplus a_j),其中 l≤i<j≤rl \le i < j \le r,⊕\oplus 表示异或运算。

你需要找出所有长度不少于 22 的子数组的值中第 kk 小的那个。

输入格式

输入的第一行为测试用例数 tt(1≤t≤2⋅1041 \le t \le 2 \cdot 10^4)。

每个测试用例的第一行为两个整数 nn 和 kk(2≤n≤1052 \le n \le 10^5,1≤k≤n⋅(n−1)21 \le k \le \frac{n\cdot(n-1)}{2})。

每个测试用例的第二行为 nn 个非负整数 a1,a2,…,ana_1, a_2, \ldots, a_n(0≤ai≤1090 \le a_i \le 10^9)——即数组本身。

保证所有测试用例中 nn 的总和不超过 10510^5。

输出格式

输出所有长度不少于 22 的子数组的值中第 kk 小的那个。

输入输出样例

  • 输入#1

    4
    5 2
    1 2 3 4 5
    2 1
    4 3
    4 6
    1 2 4 8
    5 9
    1 2 3 4 5

    输出#1

    1
    7
    12
    3

说明/提示

在第一个测试用例中,各子数组的最小异或对为:

[1,2]:3[1,2]: 3

[2,3]:1[2,3]: 1

[3,4]:7[3,4]: 7

[4,5]:1[4,5]: 1

[1,2,3]:1[1,2,3]: 1

[2,3,4]:1[2,3,4]: 1

[3,4,5]:1[3,4,5]: 1

[1,2,3,4]:1[1,2,3,4]: 1

[2,3,4,5]:1[2,3,4,5]: 1

[1,2,3,4,5]:1[1,2,3,4,5]: 1

排序后为:1,1,1,1,1,1,1,1,3,71, 1, 1, 1, 1, 1, 1, 1, 3, 7。因此,第二小的元素为 11。

由 ChatGPT 4.1 翻译

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

首页