国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

CF競賽題目講解_CF1712E2(數(shù)論 + 樹狀數(shù)組)

2022-10-23 16:24 作者:Clayton_Zhou  | 我要投稿

AC代碼

https://codeforces.com/contest/1712/submission/177510162

題意:

給定 l、r,求 l 到 r 之間有多少三元組 (i,j,k),滿足 lcm(i,j,k)≥i+j+k 且 i<j<k。

題解:

數(shù)論 + 樹狀數(shù)組

先統(tǒng)計(jì) lcm(i,j,k)<i+j+k 的三元組個數(shù)。

由于 i<j<k,所以 i+j+k≤3k ,從而得出 lcm(i,j,k)<3×k。


根據(jù)最小公倍數(shù)的性質(zhì)可知,k 必然是 lcm(i,j,k) 的約數(shù) ,那么只有兩種可能:

lcm(i,j,k)=k 或 lcm(i,j,k)=2×k 。


lcm(i,j,k)=2×k 的情況,容易發(fā)現(xiàn),只有 (3,4,6) 與 (6,10,15) 和它們的整數(shù)倍的情況能夠滿足。


再看另一種情況, i、j、k 的最小公倍數(shù)為 k,說明 i 和 j 都是 k 的約數(shù),這是一個較強(qiáng)的性質(zhì)。

我們主要處理 lcm(i,j,k)=k 的情況 。

既然 i 和 j 都是 k 的約數(shù),而且值域不大,所以可以先把 1~200000 中每個數(shù)除本身的約數(shù)處理出來。

為了使約數(shù)有序從而方便計(jì)算,這里求約數(shù)運(yùn)用了這種方法:


建立一個 vector,外層枚舉每個數(shù) i,內(nèi)層枚舉它的整數(shù)倍,即 2×i,3×i,...,一直到超出值域?yàn)橹梗?/p>

這些數(shù)它們都有共同的約數(shù) i,插入它們的約數(shù)數(shù)組中即可,不難發(fā)現(xiàn)現(xiàn)在每個數(shù)的約數(shù)組內(nèi)也是有序的。


枚舉 1~200000 中所有數(shù),把每一個數(shù)都視作 k,此時對應(yīng)的 i 就是 k 的約數(shù),?

i~k 中所有 k 的約數(shù)個數(shù) cnt 就是i相關(guān) 對答案的貢獻(xiàn)。

在樹狀數(shù)組的位置i,上傳cnt。

例如: 24的約數(shù)為:1,2,3,4,6,8,12

第4+1 個約數(shù)6,其相關(guān)貢獻(xiàn)數(shù)為 7-(4+1)=2

即為 6,8,24; 6,12,24

8,12,24也是答案,但是與6無關(guān)


CF競賽題目講解_CF1712E2(數(shù)論 + 樹狀數(shù)組)的評論 (共 條)

分享到微博請遵守國家法律
专栏| 泸定县| 黑水县| 石景山区| 沙河市| 阿图什市| 隆子县| 嘉善县| 康保县| 宁河县| 资阳市| 德江县| 铁岭市| 陆良县| 四子王旗| 维西| 逊克县| 井研县| 莱州市| 保亭| 乌拉特前旗| 孟连| 宽城| 准格尔旗| 项城市| 会同县| 德兴市| 崇州市| 莎车县| 克东县| 南澳县| 兴隆县| 固原市| 景谷| 铅山县| 汉沽区| 佛山市| 玉田县| 宜川县| 蕉岭县| 云和县|