這篇是拿來學習帶修改莫隊的。。
之前學過一次,但是是假的
今天來學習乙個真的帶修改莫隊
自然是分塊
塊的大小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...