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