您的位置:首页 > 其它

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

2017-01-30 22:52 239 查看
题目描述 Description

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

输入 Input

第一行n,m。

第二行为n个数。

从第三行开始,每行一个询问l,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%的数据:

1≤n,m≤1000

对于100%的数据:

1≤n,m≤200000

0≤ai≤109

1≤l≤r≤n

Time Limit : 2s & Memory Limit : 128MB

时间限制是猜的......也不知道多少组数据......

只有查询,没有修改的问题,不要求在线,直接莫队……

诶ai怎么这么大?可是并不需要离散化ai。

why?

想象一种极端情况,数列n个数,其中的所有数都大于n,询问最小没出现的自然数,自然是0。

再来一种,数列n个数,其中前n−1个为1到n−1,最后1个大于等于n,那么答案应该为0。

第三种,数列n个数,为0到n−1,答案为n。

所以,如果有一些数大于n,其余小于等于n,那么大于n的部分对答案没有影响,答案只会取决于小于等于n的部分。

假如要求在线呢……

很多人写主席树,本蒟蒻并不会……

时间复杂度O(Tn√)

主席树是O(Tlog2n)的

Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: