线性预处理整除分块

有时候要求前 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) 预处理。

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

相关推荐
Q741_1474 天前
每日一题 力扣 3653. 区间乘法查询后的异或 I 模拟 数学 位运算 C++ 题解
c++·数学·算法·leetcode·力扣·模拟
闻缺陷则喜何志丹5 天前
【第五章 高等数学】定积分
数学·不定积分·高等数学·分部积分法·第一类积分换元法·第二类积分换元法
是数学系的小孩儿9 天前
论文CCF是什么意思
数学
iiiiii119 天前
【理论推导】指数族分布的核心性质:对数配分函数的梯度为什么是充分统计量的期望?
人工智能·笔记·深度学习·数学·机器学习·概率论·指数族分布
__Coffee__14 天前
如何手算圆周率?
数学
邪神与厨二病14 天前
Problem L. ZZUPC
c++·数学·算法·前缀和
Icys14 天前
CKKS 同态加密数学基础推导
数学
Eloudy17 天前
从信息熵到相对熵的发展过程
数学·信息论
闻缺陷则喜何志丹18 天前
【计算几何】和差化积及积化和差
c++·数学·计算几何
Luhui Dev19 天前
如何画三角形的外接圆(附几何画板教程)
数学