线性预处理整除分块

有时候要求前 n n n 个:

暴力整除分块是 O ( n n ) O(n\sqrt n) O(nn ) 的,但可以线性预处理

首先我们让 i i i 取遍 0 到正无穷,考虑差分。

思考 n − 1 n-1 n−1 变成 n n n,哪些 i i i 会发生变化。只有 n n n 的因数,所以差分出来其实就是 n n n 的因数个数。这个可以线性筛 O ( n ) O(n) O(n) 预处理。

然后再做个前缀和就还原成原数组了。

相关推荐
你好!蒋韦杰-(烟雨平生)3 天前
第一个3D程序!
c++·数学·3d
搬砖魁首5 天前
密码学的数学基础1-整数 素数 和 RSA加密
数学·密码学·rsa·质数·素数·公钥密码
大邳草民12 天前
Math Reference Notes: 泰勒多项式
笔记·数学
Tisfy13 天前
LeetCode 2266.统计打字方案数:排列组合
数学·算法·leetcode·动态规划·题解·排列组合
小墙程序员17 天前
概率论笔记
数学
大卫小东(Sheldon)17 天前
RSA的原理和简单实践
数学·rust
丷从心19 天前
【数学】概率论与数理统计(五)
数学·概率论与数理统计
Tisfy20 天前
LeetCode 3270.求出数字答案:每位分别计算 或 for循环
数学·算法·leetcode·题解·进制
大邳草民22 天前
Math Reference Notes: 线性概念
笔记·线性代数·数学
一直学习永不止步24 天前
LeetCode题练习与总结:随机翻转矩阵--519
java·数学·算法·leetcode·哈希表·水塘抽样·随机化