线性预处理整除分块

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

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

相关推荐
charlie1145141911 天前
从0开始的机器学习(笔记系列)——导数 · 多元函数导数 · 梯度
人工智能·笔记·学习·数学·机器学习·导数
patrickpdx2 天前
2015年伊朗数学奥林匹克国家队选拔赛几何
数学
铸人5 天前
四元数散度和旋度-7
数学·复数·超复数
好奇龙猫6 天前
【大学院-筆記試験練習:线性代数和数据结构(1)】
数据结构·数学
救救孩子把7 天前
0-机器学习与大模型开发数学教程
人工智能·数学·机器学习
Tisfy7 天前
LeetCode 961.在长度 2N 的数组中找出重复 N 次的元素:5种语言x5种方法(及其变种) —— All By Hand
数据结构·数学·算法·leetcode·题解
铸人7 天前
四元数散度和旋度-2
数学·复数·物理
铸人8 天前
四元数散度和旋度-3
数学·复数·物理
铸人8 天前
四元数散度和旋度-5
数学·复数·物理
AI手记叨叨10 天前
Python数学:几何运算
python·数学·解析几何·射影几何·微分几何·欧几里得几何