bzoj 3585 mex
生活随笔
收集整理的這篇文章主要介紹了
bzoj 3585 mex
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Written with StackEdit.
題目描述
有一個(gè)長度為\(n\)的數(shù)組\({a_1,a_2,...,a_n}\)。\(m\)次詢問,每次詢問一個(gè)區(qū)間內(nèi)最小沒有出現(xiàn)過的自然數(shù)。
Input
第一行\(n,m\)。
第二行為\(n\)個(gè)數(shù)。
從第三行開始,每行一個(gè)詢問\(l,r\)。
Output
一行一個(gè)數(shù),表示每個(gè)詢問的答案。
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
HINT
對于\(30\%\)的數(shù)據(jù):
\(1<=n,m<=1000.\)
對于\(100\%\)的數(shù)據(jù):
\(1<=n,m<=200000,0<=ai<=10^9,1<=l<=r<=n.\)
Solution
- 多個(gè)區(qū)間詢問,可以離線,并且可以\(O(1)\)轉(zhuǎn)移,考慮使用莫隊(duì).
- 但是\(a_i\leq 10^9\),直接開個(gè)\(cnt\)數(shù)組記錄當(dāng)前區(qū)間內(nèi)的各種個(gè)數(shù)似乎不可做?
- 然而,對于大于\(n\)的元素,我們可以直接無視它.
- 一方面,它一定不會成為答案,否則需要出現(xiàn)至少\(0\)~\(n\) 這\(n+1\)個(gè)數(shù).
- 另一方面,它肯定不會對答案做出貢獻(xiàn).否則答案也會大于\(n\),據(jù)上,不可能.
- 所以\(a_i\)的范圍只是虛張聲勢...我們處理時(shí)將大于\(n\)的數(shù)都視作\(n+1\)即可.
- 然后就是一個(gè)愉快的莫隊(duì)板子題了.
轉(zhuǎn)載于:https://www.cnblogs.com/jklover/p/10105545.html
總結(jié)
以上是生活随笔為你收集整理的bzoj 3585 mex的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ambari搭建注意事项
- 下一篇: 01-数据库基础