杜教筛

杜教筛​

我不会什么狄利克雷卷积,但同我反演只用\(\sum_{d|n}\mu(d)=(n==1)\)这条式子一样,我觉得杜教筛也是相似的。

例题1:

\(\sum_{i=1}^{n}\mu(i)\)范围:\(n\le10^{10}\)

题解:

引入式子\(\sum_{d|n}\mu(d)==(n==1)\)

:这条以及后文引入的两条式子可在莫比乌斯反演那篇博文里看到证明

考虑\(\mu(n)\)\(\mu(n)=(n==1)-\sum_{d|n\&d<n}\mu(d)\)

那么将\(\mu(n)\)代入原式

\[\sum_{i=1}^n\mu(i)\]

\[=\sum_{i=1}^n((i==1)-\sum_{d|i\&d<i}\mu(d))\]

\[=1-\sum_{i=1}^n\sum_{d|i\&d<i}\mu(d)\]

那么,对于\(\mu(d)\)来说,它只有在\(d|i且d<i\)时才会被计算

换句话说,\(\mu(d)\)会在\(xd\le n\)时被计算上(\(x>1\)

那么我们枚举\(x\)

原式既等于

\[=1-\sum_{x=2}^n\sum_{xd<=n}\mu(d)\]

\[=1-\sum_{x=2}^n\sum_{d=1}^{\lfloor\frac{n}{x}\rfloor}\mu(d)\]

稍微换一下符号

\[=1-\sum_{x=2}^{n}\sum_{i=1}^{\lfloor\frac{n}{x}\rfloor}\mu(i)\]

然后我们发现

woc右边那一块式子怎么那么熟悉(\(\sum_{i=1}^{\lfloor\frac{n}{x}\rfloor}\mu(i)\)

就好像……,就好像最开始要求的那样

那么我们设最开始的为一个函数:

\[f(n)=\sum_{i=1}^n\mu(i)=1-\sum_{x=2}^{n}\sum_{i=1}^{\lfloor\frac{n}{x}\rfloor}\mu(i)=1-\sum_{x=2}^nf(\lfloor\frac{n}{x}\rfloor)\]

那么,总共有根号不同的对于每个\(f(n)\)来说,我们最多要求根号级别的\(f(\lfloor\frac{n}{x}\rfloor)\)

预处理前\(n^{\frac{2}{3}}\)\(f\),然后记忆化搜索即可(后面的f的函数值用哈希表来存(或者map,不过多一个log))

例题2:

\(\sum_{i=1}^{n}\varphi(i)\)范围:\(n\le10^{10}\)

题解:

引入:\[\sum_{d|n}\varphi(d)=n\]

\[\varphi(n)=n-\sum_{d|n\&d<n}\varphi(d)\]

原式=\[\sum_{i=1}^n(i-\sum_{d|ni\&d<i}\varphi(i))\]

枚举dx对数

\[\frac{n\times(n+1)}{2}-\sum_{x=2}^n\sum_{dx<=n}\varphi(d)\]

\[=\frac{n\times(n+1)}{2}-\sum_{x=2}^n\sum_{d=1}^{\lfloor\frac{n}{x}\rfloor}\varphi(d)\]

\[=\frac{n\times(n+1)}{2}-\sum_{x=2}^n\sum_{i=1}^{\lfloor\frac{n}{x}\rfloor}\varphi(i)\]

设原式=\(f(x)\)

\[f(n)=\frac{n\times(n+1)}{2}-\sum_{x=2}^n\sum_{i=1}^{\lfloor\frac{n}{x}\rfloor}\varphi(i)=\frac{n\times(n+1)}{2}-\sum_{x=2}^nf(\lfloor\frac{n}{x}\rfloor)\]

记忆化搜索即可

复杂度分析:不会,大概调一下预处理的参数,别的博客上面证明是\(O(n^{\frac{2}{3}})\)左右。

核心:乱推式子+记忆化搜索

转载于:https://www.cnblogs.com/Star-dust/p/8146146.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值