#luoguP6617. 查找 Search
查找 Search
本题没有可用的提交语言。
题目背景
也许,同学间最好的结局就是朋友吧。
是一个可爱的女孩子。
在她所住的小区里有排成一排的 个垃圾桶,从左至右第 个垃圾桶里都装着编号为 的垃圾。
不喜欢无序,于是就想把社区里编号和为 的垃圾都清在一起。
但是调皮的 可能会把某个垃圾桶里的垃圾偷换成另一种。
生气的 想考考 一个区间 内是否存在编号和为 的垃圾。
但 也不会解决这个问题,于是他找到了聪明的你。
题目描述
给定 个垃圾桶,你需要维护一个数据结构,支持以下操作:
-
1 pos val
表示将 第 个垃圾桶里的垃圾的编号换成 ; -
2 l r
询问在 内是否存在垃圾编号和为 的 两个 垃圾桶。
其中 表示异或运算, 表示在 此次询问之前,答案为 Yes
的个数。
对于每个操作 2,若存在请输出 Yes
,不存在请输出 No
。
值得注意的是,对于所有询问, 为 同一个数。
输入格式
第一行共三个整数 ,表示序列长度、接下来的操作个数与 。
第二行共 个整数 描述了这个每个垃圾桶内垃圾的编号 。
接下来的 行,每行三个整数,格式为 opt x y
。
输出格式
令操作 2 的次数为 ,输出数据共 行。
第 行表示第 个操作 2 的结果,即 Yes
或 No
。
6 4 6
1 3 2 5 5 6
2 1 4
1 4 1
2 0 5
2 3 7
Yes
No
Yes
10 20 10
9 3 6 3 3 3 3 1 4 9
1 3 9
1 6 9
2 3 10
1 3 9
2 4 4
1 1 7
1 1 3
1 5 6
1 3 9
2 4 7
1 2 7
2 6 8
1 6 10
2 2 9
1 7 9
2 3 1
1 3 5
1 5 6
1 9 10
1 3 6
Yes
No
No
No
Yes
Yes
提示
本题采用 捆绑测试,开启 O2优化。
保证 ,时限 ;
保证 ,,时限 ;
保证 ,时限 ;
没有特殊限制,时限 ;
对于所有数据, ,。
数据保证对于每个操作,,,。
由于输入输出量较大,建议使用更快的输入输出方式。
输入 #1 解释
第一次操作,询问区间 中是否有两个数加起来为 ,显然有,因此输出 Yes
;
第二次操作,修改 为 ,则序列变为 ;
第三次操作,询问区间 中是否有 两个 数加起来为 ,无,因此输出 No
。
第四次操作,询问区间 中是否有两个数加起来为 ,显然有 ,因此输出 Yes
。