數組長度 n,m 次查詢區間 mex(最小非負整數缺失值)。n,m ≤ 200,000。
int cnt[MAXV], block_cnt[BLOCKS];
int L[BLOCKS], R[BLOCKS]; // 每塊值域範圍
void add(int x) { if(++cnt[x]==1) ++block_cnt[belong[x]]; }
void del(int x) { if(--cnt[x]==0) --block_cnt[belong[x]]; }
int query_mex() {
for(int b=0; b
複雜度
- 莫隊移動:O((n+m)√n)
- 單次查詢:O(√n)
- 總:O((n+m)√n) ≈ 1.8×10⁸ 操作,需優化常數