Min_25 Sieve 学习笔记
这个东西不是人想的。
解决问题:积性函数前缀和。
适用条件:可以快速计算 的前缀和, 可以被表示成若干完全积性函数的线性组合(指对应项可以快速组合出来)。
时空复杂度:就当是 。
以下默认 为关于 的单项式, 为第 个质数。
求质数处的前缀和
我们需要对于每个能被表示成 的数,求所有在其前的质数 的 。注意到一个数的最小质因子小等于 ,我们设计一个 dp: 表示最小质因子大于 , 的所有数的 之和。转移时把最小质因子为 的 数的 全部删去,即得转移,注意容斥掉前面的质数的贡献:
这就体现出完全积性的重要性。求和号部分可以在线筛质数的时候预处理出来。第一维显然可以滚动数组优化掉,而对于第二维, 只有 个,预处理出来,大于 的编号为 即可。
我们把筛去所有最小质因子后的得到的 dp 数组记为 。
求原函数前缀和
设 表示 最小质因子大于 的所有数的 之和。枚举最小质因子及其次数,得到转移
根据神奇的复杂度分析,可以直接递归下去做。
最后加上 的贡献。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下