最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

分享到微博請遵守國家法律
常山县| 南陵县| 新干县| 饶平县| 峡江县| 上饶市| 通城县| 台中县| 竹山县| 宣恩县| 兴安盟| 手机| 宜州市| 崇阳县| 桦川县| 永寿县| 弋阳县| 汤阴县| 庐江县| 潍坊市| 太湖县| 香港 | 廊坊市| 社旗县| 大方县| 五大连池市| 区。| 高青县| 山东省| 齐齐哈尔市| 满洲里市| 鄂托克旗| 石屏县| 吴川市| 泾阳县| 社会| 汉源县| 封丘县| 崇文区| 龙门县| 隆德县|