杜教筛

基础知识:

  • 狄利克雷卷积:

对于两个数论函数 f g,定义其狄利克雷卷积为 h(n)=f(d)g(nd)
记做: (fg)(n)=h(n)=d|nf(d)g(nd)
μ φ 的性质:另一篇博客

杜教筛:

这个东西主要是对于一些数论积性函数的前缀和时用的。其主要是利用狄利克雷卷积将一个大问题转化为小型规模,达到降低复杂度的作用。

  • 通用方式:

ni=1f(i) 的值。

S(n)=i=1nf(i)

首先构造函数 g 与其f狄利克雷卷积,那么我们有 h(n)=ni=1(fg)(i) ,根据狄利克雷卷积的定义,我们有
i=1nd|if(d)g(id)

那么考虑 f g自变量的积,一定是小于等于 n 的,所以原式等于
ijnf(i)g(j)=1jng(j)i=1ndf(i)=1jng(j)S(nd)

那么
g(1)S(n)=i=1n(fg)(i)i=2ng(i)S(ni)
如果 g ni=1(fg)(i)可以很快算出,那么后面的 S(ni) 只有 n 种取值,所以可以优化。
然而证不来复杂度,反正现在是 O(n34) ,还可以预处理出 S 的前n23项,此时复杂度就是 O(n23)

例题:

  • BZOJ 3944 ——Sum

首先考虑筛 φ 。构造一个恒等函数 I=1 ,那么 phi I 狄利克雷卷积就是n。所以左边就是 ni=1i ,可以 O(1) 求出。
接着考虑筛 μ 。同样构造恒等函数 I=1 ,那么卷积起来就是 [n=1] ,所以左边就是 1 ,右边同理筛。
(暂时就写到这里)

小结一下:

杜教筛实际上是巧用狄利克雷卷积来到达优化的效果,重点是与原函数卷积的函数g的选择,原则是: g 要好算,g f 卷积好算。下面是常见的g
1.e(n)=[n=1]
2.I(n)=1
3.id(n)=n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值