#33860: 窩的解法


r1cky (hehe)

學校 : 國立臺灣師範大學
編號 : 158637
來源 : [49.216.161.223]
最後登入時間 :
2024-11-11 07:54:54
c652. 四、帶修改區間和(MRSQ) -- 板橋高中模擬賽 | From: [223.137.128.56] | 發表日期 : 2023-02-09 16:10

我這題使用了懶標線段樹,以這題而言懶標不能記成開幾次根號(之前某討論寫的),懶標的用途拿來記得把以下的數字已經改成多少、以及以下這些節點裡面的數字一不一樣,而開根號怎麼辦呢?如果直接用暴力的方式開,從$L$到$R$都各跑過一遍,這樣時間複雜度會是$O(NQ)$,會$\text{TLE}$。我們改在線段樹上一樣我下暴力做,但是有個剪枝 : 如果做到一層之後該區間數字都一樣就可以不用繼續往下做,這樣看似時間複雜度也只是比前面好一點,並不會過......嗎 ? 我們分析一下他的修改操作,他只有一種操作,這個操作後得到的數字一定比操作之前小,我們發現 : 最多對一個數字做超過$O(log A)$次他就會變成$1$,在這題$ log A = 40$,透過這個性質發現其實暴力下去的整體時間複雜度會均攤,會是$O(NlogN+QlogNlogA)$,因此能通過,如果有別的想法也可以在下方回覆!

 
ZeroJudge Forum