真 帶修改莫隊學習

2021-08-15 18:59:43 字數 706 閱讀 8517

這篇是拿來學習帶修改莫隊的。。

之前學過一次,但是是假的

今天來學習乙個真的帶修改莫隊

自然是分塊

塊的大小s取x2

3 x23

,那麼自然地,就會有n1

3 n13

個塊 然後對於每乙個操作先按照左端點的塊排序,然後按右端點的塊排序,最後按照他上乙個修改操作是第幾個排序就可以了

別的和莫隊一樣,然後修改操作也要一起移動

塊內移動,這個每一次是o(

n23)

o (n

23)的

所以複雜度為o(

n∗n2

3)=o

(n53

) o(n

∗n23

)=o(

n53)

的如果l

l

和r' role="presentation" style="position: relative;">r

r都在乙個塊裡面,就是單調的

因此複雜度是o(

n13∗

n13∗

n)=o

(n53

) o(n

13∗n

13∗n

)=o(

n53)

所以複雜度就是o(

n53)

o (n

53

)bzoj2120

帶修改的莫隊

數顏色 墨墨購買了一套n支彩色畫筆 其中有些顏色可能相同 擺成一排,你需要回答墨墨的提問。墨墨會向你發布如下指令 1 q l r代表詢問你從第l支畫筆到第r支畫筆中共有幾種不同顏色的畫筆。2 r p col 把第p支畫筆替換為顏色col。為了滿足墨墨的要求,你知道你需要幹什麼了嗎?就是在基礎的莫隊上...

bzoj2120 2453 帶修改莫隊

待修改莫隊裸題。當莫隊有修改操作時,只要記錄每個詢問的時間,在兩次詢問之間修改就可以了。可以證明時間複雜度是o n 5 3 的 具體看 1 include2 include3 include4 include5 include6 using namespace std 7 define n 1001...

BZOJ 2120 帶修改莫隊

簡略題意 單點修改,區間查詢不同顏色個數。帶修改莫隊的板題,學習了乙個。和普通莫隊的區別在於塊的大小需要設定為n2 3,這樣可以確保複雜度為o n3 5 每次詢問之前需要把在當前時間點之前的所有修改用上,這之後的所有修改刪掉。define others ifdef poj include inclu...