C. 猜数字(guess)

    传统题 文件IO:guess 1500ms 256~512MiB

猜数字(guess)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

Gooby 正在学习数据结构,在学习的过程中看到了这么一个问题:

给定长度为 nn 的数组 aa,接下来有 mm 次操作,每次操作都是以下两种中的一个:

  • 1 i valaia_i 修改为 valval
  • 2 l r x 询问区间 [l,r][l,r] 上是否存在数 xx

对于每个第二种询问,你需要输出 YesNo​ 来表示是否存在。

这个问题对于刚学数据结构的他来说太难了,请你来帮助他解决吧!

输入格式

第一行输入用空格隔开的正整数 nmn \, m 分别表示数组 aa 的长度和操作次数。

第二行输入 nn 个整数,用空格隔开,表示数组 aa 的内容。

第三行至第 m+2m + 2 行,每次输入以下两个中的一种:

  • 1 i val 表示将 aia_i 修改成 valval
  • 2 l r x 表示询问 al,al+1,...ara_l, a_{l + 1}, ...a_r 中是否存在数 xx

输出格式

对于每个第二种询问,如果询问的数存在,就输出 Yes,否则输出 No

输入输出样例 #1

输入 #1

5 5
1 2 3 4 5
2 2 3 3
1 3 2
2 1 4 3
2 4 5 2
2 1 2 1

输出 #1

Yes
No
No
Yes

样例1解释

第一次询问 a2,a3a_2,a_3 中有没有 3 结果是有的,所以输出 Yes

第二次修改数组中 a3a_32 。原数组变成 1 2 2 4 5

第三次询问 a1,...,a4a_1,...,a_4 中有没有 3 ,结果是没有的,所以输出 No

第四次询问 a4,a5a_4,a_5 中有没有 2 ,结果是没有的,所以输出 No

第五次询问 a1,a2a_1,a_2 中有没有 1,结果是有的,所以输出 Yes

输入输出样例 #2

样例2链接

说明/提示

数据范围

对于 20%20\% 的数据,1n,m10001 \le n,m \le 1000

对于 50%50\% 的数据,1ai,val,x1051 \le a_i, val, x \le 10^5,且操作 11 的次数不超过 100100 次。

对于 100%100\% 的数据,输入保证 1n,m1051 \le n,m \le 10^51lrn1 \le l \le r \le nai,val,x109|a_i|,|val|,|x| \le 10^9

10月8日CSP-J模拟赛

未参加
状态
已结束
规则
OI
题目
4
开始于
2025-10-8 13:00
结束于
2025-10-8 16:30
持续时间
3.5 小时
主持人
参赛人数
6