【数论】杜教筛

今年的GDKOI居然考了反演,还要用杜教筛,狠狠的把我骇了一跳,
回来在51nod上随便点开几题看起来像是反演的题,发现都是要用杜教筛(这RP~),
好吧好吧,那就学杜教筛咯~

杜教筛的套路

有几个大家都很熟悉的式子:
∑ d ∣ n μ ( d ) = [ n = 1 ] \sum_{d|n}\mu(d)=[n=1] dnμ(d)=[n=1]
根据这个,再写出一个式子:
∑ i = 1 n ∑ d ∣ i μ ( d ) = 1 \sum_{i=1}^n\sum_{d|i}\mu(d)=1 i=1ndiμ(d)=1
∑ i = 1 n ∑ j = 1 ⌊ n i ⌋ μ ( j ) = 1 \sum_{i=1}^n\sum_{j=1}^{\lfloor\frac{n}{i}\rfloor}\mu(j)=1 i=1nj=1inμ(j)=1
那么:
∑ i = 1 n μ ( i ) = 1 − ∑ i = 2 n ∑ j = 1 ⌊ n i ⌋ μ ( j ) \sum_{i=1}^n\mu(i)=1-\sum_{i=2}^n\sum_{j=1}^{\lfloor\frac{n}{i}\rfloor}\mu(j) i=1nμ(i)=1i=2nj=1inμ(j)
于是 μ \mu μ的前缀和就可以求了,
其他就是乘了一些奇怪的数也差不多是这样化(见后文)。

记得加上哈希记忆化。
其实并不用哈希,
我们发现,因为我们预处理了至少 n \sqrt n n 个,
所以我们要算的所有的数都是小于 n \sqrt n n 的,
当我们在计算n的答案时,在计算过程中所要访问的所有数x,它的 n / x n/x n/x的值都是唯一的,
所以我们就直接用 n / x n/x n/x作为它的哈希值,
计算下一个答案时再清空即可,

关于狄利克雷卷积的先挖坑(逃)
#复杂度
杜教筛的复杂度: O ( n 2 3 ) O(n^{\frac{2}{3}}) O(n32)
然而我并不会证明QwQ
转载唐老师的博客
这里写图片描述


【51nod 1244】莫比乌斯函数之和
求:
∑ i = a b μ ( i ) \sum_{i=a}^b\mu(i) i=abμ(i)
这个直接求出1b的减去1(a-1)的即可。

#其他例题
例题里面会有杜教筛其他情况的详细讲解(按难度排序)
【51nod 1239】欧拉函数之和
【BZOJ 3944】Sum(双倍经验)
【51nod 1237】最大公约数之和 V3
【51nod 1238】最小公倍数之和 V3
【51NOD 1227】平均最小公倍数(双倍经验)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值