日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【2018.10.20】noip模拟赛Day3 二阶和

發(fā)布時(shí)間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【2018.10.20】noip模拟赛Day3 二阶和 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今年BJ省選某題的弱化版……

這看起來就沒那么難了,有幾種方法維護(hù),這里提兩種。

?

第一種(傻逼的我寫的)

維護(hù) 一維&二維前綴和。

對(duì)于一個(gè)長度為$m$的序列$b_1,b_2,...,b_m$,

由于 二維前綴和$=b_1*m+b_2*(m-1)+...+b_m*1$,

每一項(xiàng)都和$m$有關(guān)系,而$m$可以是任意子區(qū)間的長度,于是很不好維護(hù)。

我們可以解除這些數(shù)與$m$的關(guān)系,最簡單的方法就是把它們反過來維護(hù)。

我們已經(jīng)維護(hù)了一維前綴和(即$b_1 to b_m$的和),

所以我們可以反過來維護(hù) $b_1*0+b_2*1+...+b_m*(m-1)$ 的和,二維前綴和就是$(b_1+b_2+...+b_m)*m-[b_1*0+b_2*1+...+b_m*(m-1)]$。

這樣就有一個(gè)全局維護(hù)的方法能夠解除每個(gè)數(shù)與$m$的直接關(guān)系,而只跟每個(gè)數(shù)本身的位置$-1$有關(guān)系,即線段樹維護(hù)每個(gè)區(qū)間$[l,r]$的一維前綴和 $b_l+b_{l+1}+...+b_r$ 與二維前綴和 $b_l*(l-1)+b_2*l+...+b_m*(r-1)$。

然后我還寫了對(duì)拍,包括最終測(cè)評(píng)數(shù)據(jù)在內(nèi),所有$n,m\le 5000$的數(shù)據(jù)都過了……我沒理解啊……

因?yàn)闇y(cè)了大數(shù)據(jù)$n,m=100000$后我就WA上天了(基本上沒有跟標(biāo)答一致的輸出)。

后來浪費(fèi)時(shí)間查了好久,發(fā)現(xiàn)增加線段樹上的二維前綴和時(shí),求等差數(shù)列?$(l-1)+l+...+(r-1)$?的和的通項(xiàng)公式中有個(gè)$÷2$,而除法不能隨便取模(被除數(shù)和除數(shù)中任意組成部分都不能取模)……

應(yīng)該是這么寫 $((((ll)(l-1+r-1)*(r-l+1))>>1)\%mod)$

我是這么寫的?$((((ll)(l-1+r-1)*(r-l+1)\%mod)>>1)$

數(shù)學(xué)沒學(xué)好$=GG$

改完就差不多了吧。

也可以把除以$2$改成乘$2$的逆元,這樣兩邊就可以隨便取模了。$2$的逆元也比較簡單,就是$\frac{mod+1}{2}$。

?

第二種(機(jī)房dalao們寫的)

換一種反過來維護(hù)的方式。

我們考慮當(dāng)一個(gè)數(shù)

轉(zhuǎn)載于:https://www.cnblogs.com/scx2015noip-as-php/p/9822215.html

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的【2018.10.20】noip模拟赛Day3 二阶和的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。