CF1983F.array-value
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
你有一个非负整数数组 a1,a2,…,an。
一个长度 ≥2 的子数组 a[l,r]=[al,al+1,…,ar] 的值定义为 min(ai⊕aj),其中 l≤i<j≤r,⊕ 表示异或运算。
你需要找出所有长度不少于 2 的子数组的值中第 k 小的那个。
输入格式
输入的第一行为测试用例数 t(1≤t≤2⋅104)。
每个测试用例的第一行为两个整数 n 和 k(2≤n≤105,1≤k≤2n⋅(n−1))。
每个测试用例的第二行为 n 个非负整数 a1,a2,…,an(0≤ai≤109)——即数组本身。
保证所有测试用例中 n 的总和不超过 105。
输出格式
输出所有长度不少于 2 的子数组的值中第 k 小的那个。
输入输出样例
输入#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
[2,3]:1
[3,4]:7
[4,5]:1
[1,2,3]:1
[2,3,4]:1
[3,4,5]:1
[1,2,3,4]:1
[2,3,4,5]:1
[1,2,3,4,5]:1
排序后为:1,1,1,1,1,1,1,1,3,7。因此,第二小的元素为 1。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?