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

时间限制: 1s 内存限制: 256MB 提交: 10776 解决: 1866
题目描述
给定一个长度为 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。 

比赛公告

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

求和

D题

选数异或

E题

爬树的甲壳虫

F题

青蛙过河

G题

最长不下降子序列

H题

扫描游戏

I题

数的拆分

J题

推导部分和

注意事项:

1. 对于编程题目,要求选手给出的解答完全符合 GNU C/C++ 标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的 API。

2. 代码中允许使用 STL 类库。

3. main 函数结束必须返回 0。

4. 所有依赖的函数必须明确地在源文件中 #include

5. 提交时,注意选择使用C或C++语言。


比赛结束,可以到题集中训练,长期有效,2022年第十三届蓝桥杯大赛软件类省赛C/C++大学A组真题