[莫队] [分块] [BZOJ3585] mex

探讨了在一个给定数组中进行多次区间查询,寻找区间内未出现的最小自然数的方法。介绍了适用于不同数据规模的算法策略,包括离线处理方式莫队算法,并对比了主席树的时间复杂度。

题目描述 Description

有一个长度为 n n n的数组 { \{ { a 1 , a 2 , . . . , a n a_1,a_2,...,a_n a1,a2,...,an } \} } m m m次询问,每次询问一个区间内最小没有出现过的自然数。

输入 Input

第一行 n n n, m m m
第二行为 n n n个数。
从第三行开始,每行一个询问 l l l, r r r

输出 Output

一行一个数,表示每个询问的答案。

样例输入 Sample Input

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

样例输出 Sample Output

1
2
3
0
3

限制 Limits

对于 30 30 30 % \% %的数据:
1 ≤ n , m ≤ 1000 1≤n,m≤1000 1n,m1000
对于 100 100 100 % \% %的数据:
1 ≤ n , m ≤ 200000 1≤n,m≤200000 1n,m200000
0 ≤ a i ≤ 1 0 9 0≤a_i≤10^9 0ai109
1 ≤ l ≤ r ≤ n 1≤l≤r≤n 1lrn
Time Limit : 2 s 2s 2s & Memory Limit : 128 M B 128MB 128MB
时间限制是猜的…也不知道多少组数据…

只有查询,没有修改的问题,不要求在线,直接莫队…
a i a_i ai怎么这么大?可是并不需要离散化 a i a_i ai
why?
想象一种极端情况,数列 n n n个数,其中的所有数都大于 n n n,询问最小没出现的自然数,自然是 0 0 0
再来一种,数列 n n n个数,其中前 n − 1 n-1 n1个为 1 1 1 n − 1 n-1 n1,最后 1 1 1个大于等于 n n n,那么答案应该为 0 0 0
第三种,数列 n n n个数,为 0 0 0 n − 1 n-1 n1,答案为 n n n
所以,如果有一些数大于 n n n,其余小于等于 n n n,那么大于 n n n的部分对答案没有影响,答案只会取决于小于等于 n n n的部分。
假如要求在线呢…
很多人写主席树,本蒟蒻并不会…
时间复杂度 O ( T n ) O(T\sqrt n) O(Tn )
主席树是 O ( T log ⁡ 2 n ) O(T\log_2 n) O(Tlog2n)
Code

代码转载自:https://pan.quark.cn/s/f87b8041184b Language: 中文 欢迎来到戈戈圈! 当你点开这个存储库的时候,你会看到戈戈圈的图标↓ 本图片均在知识共享 署名-相同方式共享 3.0(CC BY-SA 3.0)许可协议下提供,如有授权遵照授权协议使用。 那么恭喜你,当你看到这个图标的时候,就代表着你已经正式成为了一名戈团子啦! 欢迎你来到这个充满爱与希望的大家庭! 「与大家创造更多快乐,与人们一起改变世界。 」 戈戈圈是一个在中国海南省诞生的创作企划,由王戈wg的妹妹于2018年7月14日正式公开。 戈戈圈的创作类型广泛,囊括插画、小说、音乐等各种作品类型。 戈戈圈的目前成员: Contributors 此外,支持戈戈圈及本企划的成员被称为“戈团子”。 “戈团子”一词最初来源于2015年出生的名叫“团子”的大熊猫,也因为一种由糯米包裹着馅料蒸熟而成的食品也名为“团子”,不仅有团圆之意,也蕴涵着团结友爱的象征意义和大家的美好期盼,因此我们最终于2021年初决定命名戈戈圈的粉丝为“戈团子”。 如果你对戈戈圈有兴趣的话,欢迎加入我们吧(σ≧︎▽︎≦︎)σ! 由于王戈wg此前投稿的相关视频并未详细说明本企划的信息,且相关视频的表述极其模糊,我们特此创建这个存储库,以文字的形式向大家介绍戈戈圈。 戈戈圈自2018年7月14日成立至今,一直以来都秉持着包容开放、和谐友善的原则。 我们深知自己的责任和使命,始终尊重社会道德习俗,严格遵循国家法律法规,为维护社会稳定和公共利益做出了积极的贡献。 因此,我们不允许任何人或组织以“戈戈圈”的名义在网络平台或现实中发布不当言论,同时我们也坚决反对过度宣传戈戈圈的行为,包括但不限于与戈戈圈无关的任何...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值