ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

杜教筛

2020-08-08 08:01:11  阅读:222  来源: 互联网

标签:lfloor frac limits sum rfloor 杜教 复杂度


前言

杜教筛是杜瑜皓引入国内的一种非线性复杂度内求积性函数前缀和的算法。
对于前 \(n^{2/3}\) 的范围线性筛,其余进行递归处理。
时间复杂度 \(O(n^{2/3})\)

前置知识

  • 狄利克雷卷积
  • 常见的积性函数

实现

假设我们要求 \(sum(n)=\sum\limits_{i=1}^{n} f(i)\) ,不妨构造 \(g\) 使得 \(h=f*g\) 。

\[\sum\limits_{i=1}^{n}h(i)=\sum\limits_{i=1}^{n} \sum\limits_{j|i} g(j)f(\frac{i}{j}) \]

\[=\sum\limits_{j=1}^{n} g(j)\sum\limits_{i=1}^{\lfloor \frac{n}{j}\rfloor} f(i) \]

\[=\sum\limits_{j=1}^{n} g(j) sum(\lfloor \frac{n}{j}\rfloor) \]

因此

\[g(1)sum(n)=\sum\limits_{i=1}^{n} h(i) - \sum\limits_{j=2}^{n} g(j)sum(\lfloor \frac{n}{j}\rfloor) \]

直接整除分块,递归处理即可。
注意这里的 \(h\) 和 \(g\) 要尽可能构造的简单,以方便计算。

examples

  • \(\sum\limits_{i=1}^{n} \varphi(n)\)
    令 \(g=I\) ,则有 \(h=\varphi * I = id\) ,因此

\[sum(n)=\frac{n(n+1)}{2}-\sum\limits_{j=2}^{n} sum(\lfloor \frac{n}{j}\rfloor) \]

  • \(\sum\limits_{i=1}^{n} \mu(n)\)
    令 \(g=I\) ,则有 \(h=\mu * I = ϵ\) ,因此

\[sum(n)=1-\sum\limits_{j=2}^{n} sum(\lfloor \frac{n}{j}\rfloor) \]

标签:lfloor,frac,limits,sum,rfloor,杜教,复杂度
来源: https://www.cnblogs.com/wlzhouzhuan/p/13456260.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有