BZOJ 3585 mex 莫隊演算法

2021-07-09 14:34:46 字數 808 閱讀 6780

離線處理,這題完全不用離散化直接無視》n的數就可以了

因為大於n的數對答案肯定沒有影響

**與bzoj3339完全一樣……似有又水了一題

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define lowbit(x) (x&(-x))

#define ll long long

using namespace std;

int sc()

struct wq[200002];

int cnt[200002],a[200002],ans[200002],bl[200002];

int n,m,block,now=0;

bool cmp(w a,w b)

else

if(now==x)

}int main()

; for(int i=1;i<=n;i++)bl[i]=(i-1)/block+1;

sort(q+1,q+m+1,cmp);

int l=q[1].l,r=q[1].l;

cal(a[q[1].l],1);

for(int i=1;i<=m;i++)

for(int i=1;i<=m;i++)printf("%d\n",ans[i]);

return

0;}

BZOJ 3585 mex 莫隊演算法 分塊

題目大意 給定乙個長度為n的陣列,m次詢問某個區間內的mex值 怒寫莫隊233 將權值分成 n塊,記錄每個權值的出現次數以及每塊內有多少權值出現過 修改o 1 即可完成 查詢時首先掃一遍找到第乙個塊內有沒有覆蓋的點的塊 然後在塊內暴力查詢 時間複雜度o n 套個莫隊 總時間複雜度o m n incl...

bzoj3585 mex 分塊 莫隊演算法

首先,按照莫隊的方式對操作排序,對權值分塊,維護一下每個塊出現的個數。每次詢問,找到第乙個沒有鋪滿的塊,在下乙個塊內暴力找即可。include include include include include include define maxn 200010 using namespace std...

BZOJ 3585 mex 莫隊演算法 分塊

time limit 20 sec memory limit 128 mb submit 973 solved 513 description 有乙個長度為n的陣列。m次詢問,每次詢問乙個區間內最小沒有出現過的自然數。input 第一行n,m。第二行為n個數。從第三行開始,每行乙個詢問l,r。out...