bzoj 3339 線段樹離線處理

2021-07-31 13:44:56 字數 3663 閱讀 5276

題意:給定乙個n個數的序列,多次詢問,每次詢問區間[l,r]的mex

直接暴力顯然不可

區間[l,r]和區間[l',r']mex的情況:

(1)[l,r]和[l',r']的mex值不同:[l,r]的mex值在[l',r']中出現 或 原本在[l,r]中存在而不在[l',r']中存在從而成為[l',r']的mex值 (反之同理)

(2)[l,r]和[l',r']的mex值相同:區間內出現的元素相同或只有比mex值大的元素不同

類似莫隊的思想,如果已知[l,r]的mex值,那麼[l+1,r]的mex值會出現以下情況:

(1)與[l,r]的mex值相同

(2)[l+1,r]中沒有出現元素a[l]且a[l]成為了[l',r']的mex值

也就是說,只需要找到a[l]下一次出現的位置p,並把[l,p-1]中所有sg值比a[l]大的全都替換成a[l]即可

如果直接修改會t,那麼就可以利用線段樹區間修改即可

那麼我們就需要離線,按查詢的左端點為第一關鍵字、右端點為第二關鍵字排序

線段樹中,真正有用的只有葉子結點,建一棵完整的線段樹只是為了存一下lazy...mex本身是不資磁合併的...

BZOJ 3339 變式 變式

題意 有乙個長度為 n 的陣列a1 a2,an m次詢問,每次詢問乙個區間 l r 內次小沒有出現過的自然數me x2 a l,al 1,a r 資料範圍 n,q 200000 0 ai 200000 且ai z 0r n 分析1 60 做法 莫隊 樹狀陣列 莫隊的轉移。在樹狀陣列上用從前往後的方式...

bzoj2333 離線 線段樹

有n個節點,標號從1到n,這n個節點一開始相互不連通。第i個節點的初始權值為a i 接下來有如下一些操作 u x y 加一條邊,連線第x個節點和第y個節點 a1 x v 將第x個節點的權值增加v a2 x v 將第x個節點所在的連通塊的所有節點的權值都增加v a3 v 將所有節點的權值都增加v f1...

hdu 4288 線段樹 離線處理

hdu 4288 題意 給你類似乙個公升序的set結構 add就是加入乙個數 del就是刪除乙個數 sum就是把所有 5 3的位置的數求和 這題我們怎麼入手呢?以前做過一道類似的樹狀陣列開55個的題 這個題其實大同小異 就是對sum陣列表示 5的值我們開個sum 5 那麼你既然是公升序的 我每次ad...