國家集訓隊 數顏色

2021-10-01 06:22:37 字數 966 閱讀 4998

點此看題

正解應該是帶修莫隊,我們這裡講一下樹套樹的做法。

本題主要涉及的問題是去重,我們定義nxt

[i

]nxt[i]

nxt[i]

為最靠近i

ii位置後面顏色和i

ii相同的位置,統計[l,

r]

[l,r]

[l,r

]裡面不同顏色的個數即統計∑i=

lrnx

t[i]

>

r\sum_^ nxt[i]>r

∑i=lr​

nxt[

i]>

r,這個就是樹套樹。

考慮修改,就是改變三個值,設值從a

aa修改到b

bb,p

ap_a

pa​是距離修改點左邊x

xx最近的值為a

aa的位置,nxt

[pa]

=nxt

[x

]nxt[p_a]=nxt[x]

nxt[pa

​]=n

xt[x

],pb

p_bpb

​是距離修改點左邊最近的值為b

bb的位置,則nxt

[x]=

nxt[

pb],

nxt[

pb]=

xnxt[x]=nxt[p_b],nxt[p_b]=x

nxt[x]

=nxt

[pb​

],nx

t[pb

​]=x

,可以每個值維護乙個關於位置的平衡樹,就可以log

⁡\log

log找前驅了。

時間複雜度o(n

log⁡2)

o(n\log^2)

o(nlog2)

,空間複雜度也一樣。

先咕一下吧,以後再補

數顏色 國家集訓隊

待修莫隊模板題 待修莫隊在普通莫隊的基礎上,額外維護乙個修改操作,每一次根據查詢操作的時間加入修改或是撤銷修改。實現蠻顯然的,配合 很容易搞懂。note 塊大小的證明參見這裡,此處不做贅述。include using namespace std namespace standardio templa...

國家集訓隊 數顏色

題目 洛谷p1903 bzoj2120。題目大意 給你一列數,有兩種操作 1.詢問區間 l,r 內不同數出現的個數。2.單點修改。解題思路 帶修莫隊。仍然運用分塊思路,加了乙個修改時間而已。所以以 l 所在的塊為第一關鍵字,r 所在的塊為第二關鍵字,修改時間為第三關鍵字排序即可。c code inc...

國家集訓隊 數顏色

墨墨購買了一套n支彩色畫筆 其中有些顏色可能相同 擺成一排,你需要回答墨墨的提問。墨墨會向你發布如下指令 1 q l r代表詢問你從第l支畫筆到第r支畫筆中共有幾種不同顏色的畫筆。2 r p col 把第p支畫筆替換為顏色col。題解 做這道題之前不會帶修改莫隊,山神學會了之後手 嘴 把手 嘴 教我...