(學軍集訓)漏網之魚

2021-10-01 09:59:46 字數 1712 閱讀 5266

給定乙個n

nn個數的序列a

aa,有q

qq次詢問,每次詢問區間[l,

r]

[l,r]

[l,r

]的所有子區間的mex

mexme

x的和。

資料範圍:n,q

≤106

,ai≤

10

9n,q\le 10^,a_i\le 10^

n,q≤10

6,ai

​≤10

9 發現[ l,

r]

[l,r]

[l,r

]的子區間這個限制條件過多,考慮把它拆成起點在[1,

r]

[1,r]

[1,r

]內,終點在[l,

r]

[l,r]

[l,r

]內的答案減去起點在[1,

l−1]

[1,l-1]

[1,l−1

]內的答案。

考慮離線,從1

11到n

nn推指標i

ii,維護起點在[1,

i]

[1,i]

[1,i

]內,終點在後面區間的答案,由於是區間的修改與查詢,故用線段樹維護。

考慮將指標右移一位到i

ii時,有終點在後面的mex

mexme

x什麼影響(相較於起點在i−1

i-1i−

1 [i

]a[i]

a[i]

後的終點不會影響,原來mex

mexme

x小於a[i

]a[i]

a[i]

的也不影響,而會將剩下的mex

mexme

x改為a[i

]a[i]

a[i]

,由於mex

mexme

x的單調性,修改是一段區間。

考慮對於乙個終點x

xx,如何計算起點在[1,

i]

[1,i]

[1,i

]內的區間的總答案。如果要每次加上新的答案(區間[i,

x]

[i,x]

[i,x]的mex

mexme

x),則對於mex

mexme

x不變化的部分不好做,考慮能否只在變化時算。而終點x

xx在起點右移時的mex

mexme

x又是單調不公升的,考慮記最後一段mex

mexme

x相等的答案,每次變化時把它加入歷史版本。設最後一段起點為las

tlast

last

,則答案為(i−

last

)×me

x(i-last)\times mex

(i−las

t)×m

ex,由於i

ii是變化的,先將式子拆開:mex

×i−l

ast×

me

xmex\times i-last\times mex

mex×i−

last

×mexex

mexme

x的和,把可靜態維護的las

t×me

xlast\times mex

last×m

ex加入歷史版本,查詢時即可利用當前的i與線段樹中的資訊得出答案。

(學軍集訓)環

對於乙個長度為的01串,下標從0到。定義兩種型別的操作 a型別 選擇乙個x xx,將序列迴圈右移x xx位,也就是新序列的第 i x n i x n i x n位對應原序列的第位。b型別 選擇乙個,滿足序列的第i ii個位置為1,且第 i 1 n i 1 n i 1 n位置不為1,交換序列的第i i...

(學軍集訓)探尋

探尋者皮特 pete 在乙個新的鈦礦上有領先優勢,需要您的幫助將採礦業務推銷給投資者。礦山可以 表示為一棵樹 礦山的入口是樹的根,其他樹節點是地下鈦礦的礦穴,樹的邊是皮特可以在兩個礦穴之 間 或對於和根相鄰的邊,在礦井入口和礦穴之間 挖掘潛在隧道。連線第礦礦床與其母礦的隧道的 長度為英呎。其中乙個葉...

(學軍集訓)揹包

有 n nn 種物品,第 i ii 種物品有 c ic i ci 個,體積為 v iv i vi 給定整數集合 s ss,從這 n nn 種物品中選出 k k s k k s k k s 種物品,每種物品選任意正整數 個,問可以得到哪些小於 l ll 的總體積值 對於所有的資料,滿足 1 n ci,...