U674465 Kirito的最大异或值

题目背景

>校赛题,不保证数据与校赛一致

题目描述

给定一个长度为 $n$ 的非负整数数组 $a = [a_1, a_2, \dots, a_n]$,以及 $q$ 次独立的询问。 对于每一次询问,给出两个非负整数 $x$ 和 $m$,你需要完成以下要求: 1. 从数组 $a$ 中筛选出所有满足 $a_i \leq m$ 的元素; 2. 若筛选后的元素集合为空,输出 $-1$; 3. 否则,在筛选后的元素中,找到与 $x$ 进行按位异或运算(记为 $\oplus$)后结果最大的值,输出该最大值。

输入格式

第一行包含一个整数 $n$,表示数组 $a$ 的长度。 接下来 $n$ 行,每行一个整数 $a_i$,表示数组的第 $i$ 个元素。 接下来一行包含一个整数 $q$,表示询问的次数。 接下来 $q$ 行,每行两个整数 $x, m$,表示一次询问的两个参数。

输出格式

对于每一次询问,单独输出一行一个整数。若不存在满足 $a_i \leq m$ 的元素,输出 $-1$;否则输出符合条件的最大异或值。

说明/提示

1. 第一次询问:$x=3, m=1$。筛选出 $a_i \leq 1$ 的元素为 $0,1$。计算异或值:$0 \oplus 3 = 3$,$1 \oplus 3 = 2$,最大值为 $3$,故输出 $3$。 2. 第二次询问:$x=1, m=3$。筛选出 $a_i \leq 3$ 的元素为 $0,1,2,3$。计算异或值:$0 \oplus 1 =1$,$1 \oplus 1=0$,$2 \oplus 1=3$,$3 \oplus 1=2$,最大值为 $3$,故输出 $3$。 3. 第三次询问:$x=5, m=6$。所有元素均满足 $a_i \leq 6$。计算异或值:$0 \oplus5=5$,$1\oplus5=4$,$2\oplus5=7$,$3\oplus5=6$,$4\oplus5=1$,最大值为 $7$,故输出 $7$。 - $1 \leq n \leq 10^5$ - $0 \leq a_i \leq 10^9$ - $1 \leq q \leq 10^5$ - $1 \leq x \leq 10^9$ - $1 \leq m \leq 10^9$