首页 > 编程语言 >算法学习笔记(23):杜教筛

算法学习笔记(23):杜教筛

时间:2024-06-07 22:11:23浏览次数:28  
标签:lfloor right frac 23 sum rfloor 杜教 算法 left

杜教筛

参考来源: OI-Wiki, 网上博客
线性筛可以在线性时间求积性函数前缀和, 而杜教筛可以用低于线性时间求解积性函数前缀和。

我们考虑 \(S(n)\) 就是积性函数的前缀和, 所以我们尝试构造关于 \(\large S(n)\) 关于 \(\large S(\lfloor \frac{n}{i} \rfloor)\) 的递推式。

对于任意一个数论函数 g,必满足:

\(\begin{aligned} \sum_{i=1}^{n}(f * g)(i) & =\sum_{i=1}^{n}\sum_{d \mid i}g(d)f\left(\frac{i}{d}\right) \\ & =\sum_{i=1}^{n}g(i)S\left(\left\lfloor\frac{n}{i}\right\rfloor\right) \end{aligned} \)

将 \(\large S(n)\) 提出来就可以得到:

\(\begin{aligned} g(1)S(n) & = \sum_{i=1}^n g(i)S\left(\left\lfloor\frac{n}{i}\right\rfloor\right) - \sum_{i=2}^n g(i)S\left(\left\lfloor\frac{n}{i}\right\rfloor\right) \\ & = \sum_{i=1}^n (f * g)(i) - \sum_{i=2}^n g(i)S\left(\left\lfloor\frac{n}{i}\right\rfloor\right) \end{aligned} \)

再将 \(g(1)\) 移过去即可得到 \(S(n)\) 的递推式, 考虑我们可以自己构造 \(g(n)\) 使得计算变快。

当我们构造出这样的 \(g(n)\) 时:

  1. 可以快速计算 \(\sum_{i=1}^n(f * g)(i)\);
  2. 可以快速计算 g 的前缀和,以用数论分块求解 \(\sum_{i=2}^ng(i)S\left(\left\lfloor\dfrac{n}{i}\right\rfloor\right)\)。

则我们可以在较短时间内求得 \(g(1)S(n)\)。

例题

标签:lfloor,right,frac,23,sum,rfloor,杜教,算法,left
From: https://www.cnblogs.com/qerrj/p/18237933

相关文章

  • m基于PSO粒子群优化的LDPC码NMS译码算法最优归一化参数计算和误码率matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:     2.算法涉及理论知识概要       低密度奇偶校验码(Low-DensityParity-CheckCode,LDPC码)因其优越的纠错性能和近似香农极限的潜力,在现代通信系统中扮演着重要角色。归一化最小和(NormalizedMin-Sum,NMS)译码......
  • 基于GA-PSO遗传粒子群混合优化算法的DVRP问题求解matlab仿真
    1.程序功能描述       车辆路径问题(VehicleRoutingProblem,VRP)是运筹学领域的一个经典问题,旨在寻找满足一系列送货或取货需求的最优车辆行驶路径。DVRP是一个经典的组合优化问题,在物流配送、运输调度等领域有广泛应用。它要求确定一组最优路径,使得一定数量的车辆从起......
  • 美团面试:百亿级分片,如何设计基因算法?
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • 【算法】深入浅出爬山算法:原理、实现与应用
     人不走空                                           ......
  • 雪花算法
    SnowFlake雪花算法概述雪花算法是由Twitter开发的一种分布式唯一ID生成算法,主要用于分布式系统中需要生成唯一ID的场景。它生成的ID既有全局唯一性,又有时间有序性。雪花算法ID结构一个典型的雪花算法生成的ID一共有64位,通常由以下几个部分组成:1位符号位:永远......
  • [自适应控制] 广义最小方差控制(GMVC)算法理论及其Matlab实现
     基于[自适应控制],广义最小方差控制(GMVC)算法理论与其Matlab实现,包括代码和参考书籍,适合新手学习,注释清晰,适合入门或者进行二创。模型获取:[自适应控制]广义最小方差控制(GMVC)算法理论及其Matlab实现......
  • [自适应控制] 最小方差控制(MVC)算法理论,及其 Matlab代码 实现
      个人整理了[自适应控制]最小方差控制(MVC)算法理论,并使用Matlab代码进行了实现,效果明显,配备了参考文献与书籍,适合新手学习使用。模型代码获取:  [自适应控制]最小方差控制(MVC)算法理论,及其Matlab代码实现......
  • 数据结构学习笔记-佛洛依德算法
    最短路径问题的经典解法-佛洛依德算法问题描述:设计算法求解图的最短路径【算法设计思想】初始化距离矩阵:首先,将解决方案矩阵dist[][]初始化为输入图矩阵graph[][],这个矩阵存储了顶点之间的直接距离或者权值。中间顶点迭代:然后,对每一个顶点作为中间顶点进行迭代。算法通过......
  • 算法题-无重复字符的最长子串
    学习目标:无重复字符的最长子串leetcode原题链接学习内容:给定一个字符串s,请你找出其中不含有重复字符的最长连续子字符串的长度。示例1:输入:s=“abcabcbb”输出:3解释:因为无重复字符的最长子字符串是“abc”,所以其长度为3。示例2:输入:s=“......
  • 代码随想录算法训练营第30天|回溯复习篇
    回溯基础理论1.回溯的本质是利用递归进行暴力搜索,将符和条件的结果集搜索出来2.回溯法常见的问题:组合问题:N个数里面按一定规则找出k个数的集合排列问题:N个数按一定规则全排列,有几种排列方式切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合......