五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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ù)組)的評論 (共 條)

分享到微博請遵守國家法律
清流县| 南靖县| 丽江市| 太原市| 泰州市| 新乡县| 宣恩县| 鞍山市| 乳山市| 潜山县| 寿阳县| 抚松县| 龙门县| 绥芬河市| 宁晋县| 临潭县| 那坡县| 姜堰市| 九龙县| 鹤壁市| 杂多县| 互助| 常德市| 观塘区| 麻城市| 澳门| 罗城| 鄯善县| 资溪县| 安阳县| 永靖县| 舟山市| 垫江县| 十堰市| 云梦县| 芜湖县| 商水县| 锡林浩特市| 眉山市| 靖远县| 偏关县|