牛客練習賽25 因數個數和

2021-08-27 08:52:44 字數 377 閱讀 6519

大佬的部落格寫的很清楚  求1-n的因子個數和 就是從1-n中qu的數任意取乙個數i 在1-n之間有多少是i的倍數 即[n/i]   因為n/i的結果也是 n的因數 所以可以只算 1-sqrt(n)  然後乘 2 , 因為n/i可以等於i,乘2重複計算了,還要減去這些重複計算的數  只要 i的平方小於等於n 都算重複計算的  一共重複計算了sqrt(i)*sqrt(i)個 

sqrt(n)個因子每個多算了sqrt(n)次 因為是直接用n/i

#includeusing namespace std;

int main()

printf("%lld\n",2*ans-sq*sq);

}return 0;

}

牛客練習賽25 因數個數和(貢獻法)

題意 q次詢問,每次給乙個x,問1到x的因數個數的和。思路 考慮1到x的數的因子為1有x 1,因子為2有x 2,所以要求的就是 從ans式子可以看出,12 5和12 6都是2,12 7和12 8和 12 12都是1,對應的區間為 5,6 7,12 這些區間的l和r是可以算出來的,令i從1開始,r x...

牛客練習賽25 A 因數個數和 數論分塊

題意 q次詢問,每次給乙個x,問1到x的因數個數的和。1 q 10 1 x 10 9 1s思路 對1 n中的每個數i,i作為i,2i,3i,的約數,一共作為n i個數的約數 於是題目就轉化為求 displaystyle sum n lfloor frac rfloor 數論分塊 o displays...

牛客練習賽 因數個數和 分塊或容斥

1.分塊 時間複雜度為o 依次計算每個塊的貢獻1 r1,l2 r2,l3 r3,l4 r4,ln rn 舉例 計算10的因數的個數 第一塊 1到1,每個數的貢獻為10,總貢獻為 10 1 1 1 第二塊 2到2,每個數的貢獻為5,總貢獻為 5 2 2 1 第三塊 3到3,每個數的貢獻為3,總貢獻為 ...