题目名称 3544. XOR
输入输出 xorcal.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarsyzhaoss 于2021-03-09加入
开放分组 全部用户
提交状态
分类标签
数学 线性基 线性空间
分享题解
通过:1, 提交:1, 通过率:100%
Gravatarop_组撒头屯 100 0.174 s 0.67 MiB C++
关于 XOR 的近10条评论(全部评论)

3544. XOR

★★★   输入文件:xorcal.in   输出文件:xorcal.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

给定你由$n$个整数构成的整数序列,你可以从中选取一些(至少一个)进行异或(XOR)运算,从而得到很多不同的结果。

请问,所有能得到的不同的结果中第$k$小的结果是多少。

【输入格式】

第一行包含整数$T$,表示共有$T$组测试数据。

对于每组测试数据,第一行包含整数$n$。

第二行包含 $n$个整数,表示完整的整数序列。

第三行包含整数$q$,表示询问的次数。

第四行包含$q$个整数 $k_1,k_2,…,k_q$,表示$q$个询问对应的$k$。

【输出格式】

对于每组测试数据,第一行输出 Case #C:,其中$C$为顺序编号(从 1开始)。

接下来$q$行描述$q$次询问的结果,每行输出一个整数,表示第$i$次询问中第$k_i$小的结果。

如果能得到的不同结果的总数少于$k_i$,则输出$-1$。

【样例输入】

2
2
1 2
4
1 2 3 4
3
1 2 3
5
1 2 3 4 5

【样例输出】

Case #1:
1
2
3
-1
Case #2:
0
1
2
3
-1

【注意】

如果只选取一个数字进行运算,则结果为该数字本身。

【数据规模与约定】

$1\leq n,q\leq 10000$

$1\leq k_i\leq 10^{18}$

【来源】

《算法竞赛进阶指南》