#NCST202412K. 数据结构与算法

数据结构与算法

题目描述

小明和小红是大学里的好友,他们在数据结构和算法课程中相识,因共同的学习兴趣而建立了深厚的友谊。每当周末,他们都会相约在校园的图书馆或草坪上,一起复习课堂知识,解决各种算法题目。这一次,他们在一次课程讨论中受到启发,决定发明一个新游戏:

他们在纸上写下一串数字,并且对这个数列进行了两种有趣的操作:

  1. 区间最大值:每当小红指出某个区间 [l,r][l, r],小明需要快速计算出这个区间内的最大值。这个操作有助于他们验证彼此的推算是否正确。
  2. 特定异或值配对:游戏的第二阶段更有趣。小红提出一个非负整数 kk,然后小明要判断在指定的区间 [l,r][l, r] 中是否存在两个数字,使得它们的异或结果恰好等于 kk。这个挑战不仅考验小明的数学能力,还需要他的逻辑思维和敏锐的观察力。

他们的每一次游戏都变成了一次知识的盛宴,让他们不仅享受到挑战的乐趣,也收获了丰富的学习经验。小明和小红意识到,数据结构和算法不仅仅是课本上的知识,更是一种解决问题的思维方式。通过这样的游戏,他们不仅巩固了课堂上学到的内容,也为未来的编程和算法竞赛打下了坚实的基础。

他们的友谊在这些游戏中不断升温,成为彼此学习路上的重要支持者。每次挑战结束后,他们都会笑着回顾整个过程,分享各自的心得,力求在算法的海洋中不断进步。

输入格式

第一行三个整数 n,m,kn, m, k 分别表示数组大小,询问次数, 特定异或值。

接下来的 nn 行,一行一个整数,记为 aia_i

接下来的 mm 行,每行包括三个整数

第一个整数 opop 表示操作类型,第二个整数 ll 和第三个整数 rr 表示查询区间 [l,r][l, r]

  1. op=1op=1 时,询问区间 [l,r][l, r] 中的最大值。

  2. op=2op=2 时,询问区间 [l,r][l, r] 中是否存在两个数使得他们异或后的结果等于 kk

输出格式

  1. op=1op=1 时,输出一行一个数代表询问区间的最大值。

  2. op=2op=2 时,如果在询问区间中能找到两个数使得他们异或后的结果等于 kk ,输出一行Yes , 否则输出一行 No

输入输出样例

4 4 1
1
2
3
4
1 1 2
1 2 4
2 1 2
2 2 3
2
4
No
Yes

提示

数据规模

数据点 数据规模
1t31 \leq t \leq 3 $10 \leq n \leq 500, 1 \leq m \leq 500, 0 \leq k \leq 10^5, 1 \leq a_i \leq 10^5$
4t74 \leq t \leq 7 $500 \leq n,m \leq 10^4, 0 \leq k \leq 10^9, 1 \leq a_i \leq 10^9$
8t108 \leq t \leq 10 $10^4 \leq n,m \leq 10^5, 0 \leq k \leq 10^9, 1 \leq a_i \leq 10^9$
对于所有的测试点 1lrn1 \leq l \leq r \leq n