如果能线性筛预处理出 G 在 n 比较小的时候的前缀和,取 B=O(n2/3),这样复杂度中 √i 直接查表就能直接去掉,而要保证 ni≥n2/3 那么 i≤n1/3,这样复杂度就是 ∑n1/3i=1√ni=O(n2/3).
f=g∗h,F(n)=∑nd=1h(d)G(⌊nd⌋).
求 G(n),移项,基本和组往下递归。
直接递归需要记忆化复杂度 O(n3/4),小的部分线性筛预处理,复杂度是 O(n2/3).
Powerful number 筛
Powerful number 是指标准分解中质因数的指数均 >1 的数,其一定能表示成 a2b3 的形式,如果让 b 中无平凡因子那么这个表示就是唯一的。那么现在就可以来估计一下 n 以内 pn 的个数:∑3√nb=1nb2,积分一下就得到 O(n1/2).
Powerful number 筛的核心式子与杜教筛完全一致 F(n)=∑nd=1h(d)G(⌊nd⌋).现在想求 F(n),构造 g 使得 g 和 f 在素数处的取值完全相同,由于 f=g∗h 可看出 h 仅在 powerful number 处有值。如果 G 能快速算出,h(d) 根据 f=g∗h 也能快速算出,这样只需要暴力 dfs 枚举所有 powerful number 作为 d,然后计算 f,这样复杂度就是 O(n1/2) 的了。
f=g∗h,F(n)=∑nd=1h(d)G(⌊nd⌋).
求 F(n),构造 g 使得 f,g 在 pk 处取值相同,这样 h 仅在 pn 处有取值。
直接 dfs 枚举所有 d 计算 F(n) 即可。复杂度是 pn 个数 O(√n).
贝尔级数
对于积性函数 f 其质数 p 对应的贝尔级数 ∑if(pi)xi,积性函数的狄利克雷卷积就对应贝尔级数的普通卷积,可以用来构造杜教筛需要的函数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?