杜教筛学习笔记

杜教筛

是求一个数论函数f的前缀和,令其为S

我们考虑构造一个数论函数g,根据 狄利克雷卷积

i=1n(fg)(i)=i=1ndig(d)f(id)=i=1ng(i)S(ni)

可以推出

g(1)S(n)=i=1ng(i)S(ni)i=2ng(i)S(ni)=i=1n(fg)(i)i=2ng(i)S(ni)

所以我们只需快速求出g(fg)的前缀和,就可以快速求出S

然后时间复杂度不会证明,但直接打是O(n34),预处理前O(n23)位前缀和是O(n23)

预处理+外面套上数论分块也是O(n23)

难点就是构造g函数,所以学习一下数论函数

posted @   zhy_learn  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
点击右上角即可分享
微信分享提示