首页 > 其他分享 >杜教筛学习笔记

杜教筛学习笔记

时间:2023-01-02 18:55:26浏览次数:31  
标签:lfloor frac limits sum 笔记 杜教 学习 nf rfloor

杜教筛是拿来求积性函数前缀和的东西

\(h=f*g\)
\(s(n)=\sum\limits_{i=1}^ng(i)\)
而杜教筛可以在 \(O(n^{\frac 23})\) 的复杂度内求出 \(s(n)\),前提是存在两个很好求前缀和的函数 \(f\) 和 \(h\) 满足 \(h=f*g\)
\(\sum\limits_{i=1}^{n}h(i)\)\(\sum\limits_{i=1}^n\sum\limits_{j|i}f(j)g(\frac{i}{j})\)
\(=\sum\limits_{i=1}^nf(i)\sum\limits_{j=1}^{\lfloor\frac{n}{d}\rfloor}g(j)\)
\(=\sum\limits_{i=1}^nf(i)s(\lfloor\frac{n}{i}\rfloor)\)
\(\sum\limits_{i=1}^nh(i)=\sum\limits_{i=1}^nf(i)s(\lfloor\frac{n}{i}\rfloor)\)
\(\sum\limits_{i=1}^nh(i)=\sum\limits_{i=2}^nf(i)s(\lfloor\frac{n}{i}\rfloor)+s(n)f(1)\)
\(\sum\limits_{i=1}^nh(i)-\sum\limits_{i=2}^nf(i)s(\lfloor\frac{n}{i}\rfloor)=s(n)f(1)\)

到这里就可以用整除分块求了,这样解出复杂度 \(O(n^{\frac 34})\)

但是可以用欧拉筛预处理在 \(O(n^{\frac 23})\) 以内的前缀和,复杂度降到 \(O(n^{\frac 23})\)



常用函数
\(\phi*I=id\)
\(\mu*I=e\)

标签:lfloor,frac,limits,sum,笔记,杜教,学习,nf,rfloor
From: https://www.cnblogs.com/mekoszc/p/17020352.html

相关文章

  • Vue-element-template项目学习笔记
    1.vue在css引入背景图片报错:Modulenotfound:Error:Can'tresolve'../../images/icons/loading2.gif'in'/home。报错信息就是找不到路径,我是这样的写法:backgroun......
  • rc.local自启动学习
    在CentOS系统下,主要有三种方法设置自己安装的程序开机启动。1、把启动程序的命令添加到/etc/rc.d/rc.local文件中,比如下面的是设置开机启动httpd。#!/bin/sh##Thisscript......
  • Markdown学习笔记
    Markdown学习一级标题:一个#+一个空格+标题名字+回车二级标题二级标题:2个#+一个空格+标题名字+回车三级标题三级标题:3个#+一个空格+标题名字+回车字体Hello,World!......
  • for学习
    #include<stdio.h>intmain(){inti=0;for(i=1;i<=10;i++){printf("%d",i);}return0;}......
  • 学习笔记:网络流
    学习笔记网络流基本概念一个网络是一张有向无环图,每条边有容量\(w\),表示这条边最多能容纳多少流量,入度为0的点叫源点\(s\),出度为0的点叫汇点\(t\),源点有无限流量......
  • 学习笔记:MIn_25筛
    Min_25筛学习笔记叫这个名字是因为这是\(Min\_25\)神犇发明的,主要用到的思想是对于质数和合数分开计算。适用范围对于一个积性函数\(f(x)\)求解:\[\sum_{i=1}^{n......
  • MySql学习笔记--基础篇02
    约束外键--父表和子表,如果要删除父表的记录时,会判断子表是否存在关联关系,如果存在不予删除  多表关系一对多,在此表中建立外键关联主表的主键多对多,建立第三张中......
  • 学习重点,选择器
    ​ 【1】代码:<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title></title><styletype="text......
  • 学习重点,选择器
    ​ 【1】代码:<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title></title><styletype="text......
  • 狂神说Java(零基础) Java入门笔记
    1.Java帝国的诞生​1972年C诞生,比1995年诞生的Java早了20多年。C贴近硬件,运行极快,效率极高,用于操作系统、编译器、数据库、网络系统等,但是在指针和内存管理方面,常常让程序......