2665 问题 D: 蓝桥杯2022年第十三届省赛真题-选数异或

时间限制: 1s 内存限制: 256MB 提交: 10356 解决: 1807
题目描述
给定一个长度为 n 的数列 A1, A2, · · · , An 和一个非负整数 x,给定 m 次查询, 每次询问能否从某个区间 [l,r] 中选择两个数使得他们的异或等于 x 。
输入

输入的第一行包含三个整数 n, m, x 。

第二行包含 n 个整数 A1, A2, · · · , An

接下来 m 行,每行包含两个整数 li ,ri 表示询问区间 [li ,ri ] 。

输出
对于每个询问, 如果该区间内存在两个数的异或为 x 则输出 yes, 否则输出 no。
样例输入
4 4 1
1 2 3 4
1 4
1 2
2 3
3 3
样例输出
yes
no
yes
no
提示

显然整个数列中只有 2, 3 的异或为 1。

对于 20% 的评测用例,1 ≤ n, m ≤ 100;

对于 40% 的评测用例,1 ≤ n, m ≤ 1000;

对于所有评测用例,1 ≤ n, m ≤ 100000 ,0 ≤ x < 220 ,1 ≤ li ≤ ri ≤ n , 0 ≤ Ai < 220。 

比赛公告

第十三届蓝桥杯大赛软件赛省赛 Java 大学 C 组
C题

纸张尺寸

D题

求和

E题

矩形拼接

F题

选数异或

G题

GCD

H题

青蛙过河

I题

因数平方和

J题

最长不下降子序列

注意事项:

1. 不要使用 package 语句。

2. 选手代码的主类名必须为:Main,否则会被判为无效代码。

3. 如果程序中引用了类库,在提交时必须将 import 语句与程序的其他部分同时提交。

4. 只允许使用 Java 自带的类库。

5. 提交时,注意选择使用Java语言。


本比赛结束,依旧可以训练提交,见题集2022年第十三届蓝桥杯大赛软件类省赛Java大学C组真题