【学习小记】狄利克雷卷积+杜教筛
Preface
这东西分明就是玄学暴力
用来求简单的数论函数的前缀和,像φ,μφ,\mu这类的东西
当然,约数和,约数个数之类的也是可以的
Text
数论函数是指定义域是整数,陪域是复数的函数
Dirichlet 卷积
定义两个数论函数f,gf,g
它们的狄利克雷卷积表示f∗gf*g,设卷起来得到的新函数是hh
h(i)=\sum\limits_{d|i}f(i)g({i\over d})
明显hh也是一个数论函数
显然它满足交换,结合律,对加法满足分配律
有常见的一些数论函数
1(i)=1,n(i)=n1(i)=1,n(i)=n(常函数)
e(1)=1,e(n)=0(n>1)e(1)=1,e(n)=0(n>1) (单位元)
id(i)=iid(i)=i
idk(i)=ikid_k(i)=i^k
μ(i)\mu(i)(莫比乌斯函数,不解释)
φ(i)φ(i)(欧拉函数,不解释)
约数个数,设为d(i)=∑d|i1d(i)=\sum\limits_{d|i} 1
约数和,设为σ(i)=∑d|id\sigma(i)=\sum\limits_{d|i}d
显然有以下常见的卷积形式
任意函数卷积单位元仍为它本身
d=1∗1d=1*1
σ=id∗1\sigma=id*1
因为e(n)=∑d|nμ(d)e(n)=\sum\limits_{d|n}\mu(d)
所以
- e=1∗μe=1*\mu
因为φ(n)=∑d|nμ(d)ndφ(n)=\sum\limits_{d|n}\mu(d){n\over d}
所以
- φ=μ∗idφ=\mu*id
因为n=∑d|nφ(d)n=\sum\limits_{d|n}φ(d)
所以
- id=φ∗1id=φ*1
杜教筛
考虑如何求μ\mu的前缀和
比如说101010^{10}?
线筛会T
设S(n)=∑i=1nμ(i)S(n)=\sum\limits_{i=1}^{n}\mu(i)
确定一个合适的数论函数gg
\sum\limits_{i=1}^{n}(g*\mu)(i)=\sum\limits_{i=1}^{n}\sum\limits_{d|i}\mu({i\over d})g(d)
交换主体
=\sum\limits_{d=1}^{n}\sum\limits_{d|i}\mu({i\over d})g(d)
=\sum\limits_{d=1}^{n}g(d)\sum\limits_{i=1}^{\lfloor {n\over d}\rfloor}\mu(i)
=\sum\limits_{d=1}^{n}g(d)S({\lfloor {n\over d}\rfloor})
那么g(1)S(n)=∑i=1n(g∗μ)(i)−∑d=2ng(d)S(⌊nd⌋)g(1)S(n)=\sum\limits_{i=1}^{n}(g*\mu)(i)-\sum\limits_{d=2}^{n}g(d)S({\lfloor {n\over d}\rfloor})
要使gg和g∗μg*\mu尽量容易求,可以想到gg用11函数是比较合适的,即g(i)=1g(i)=1
因为1∗μ=e1*\mu=e
原式化为
S(n)=1-\sum\limits_{d=2}^{n}S({\lfloor {n\over d}\rfloor})
可以用线筛预处理前(√n)\sqrt(n)或者n23n^{2\over 3}的SS,后面减的部分分块处理,递归下去,再哈希或者什么东西把算过的S记忆化一下
复杂度取决于预处理的多少
实验和理论都证明,预处理前n23n^{2\over 3}个S,总复杂度最优,为O(n23)O(n^{2\over 3})
据说证明要用积分?然而我并不会。。。
对于求欧拉函数的前缀和,方法也是一样的,gg仍取11,只不过g∗φ=idg*φ=id
前面的1改成n(n+1)/2n(n+1)/2
【学习小记】狄利克雷卷积+杜教筛相关推荐
- P3768 简单的数学题 [狄利克雷卷积,杜教筛,莫比乌斯反演]
简单的数学题 题目连接 https://www.luogu.org/problemnew/show/P3768 题目描述 输入一个正整数n,n≤1010n,n\le 10^{10}n,n≤1010和p ...
- huntian oy (数论卷积杜教筛)
huntian oy (数论&卷积&杜教筛) 思路: f(n,a,b)=∑i=1n∑j=1igcd(ia−ja,ib−jb)[gcd(i,j)=1](mod109+7)f(n,a,b) ...
- [学习笔记] 初次见面,请多关照 (公式推导+题集)——杜教筛
筛积性函数的前缀和 常见积性函数 公式推导 狄利克雷卷积 杜教筛 实现 常见卷积 习题集 Sum 神犇和蒟蒻 简单的数学题 常见积性函数 μ\muμ φφφ d(n)d(n)d(n):nnn的约数个数 ...
- matlab狄利克雷函数,数论入门1——莫比乌斯函数,欧拉函数,狄利克雷卷积,线性筛,莫比乌斯反演,杜教筛...
数论入门1 一个菜鸡对数论的一点点理解... 莫比乌斯函数 定义函数$\mu(n)$为: 当n有平方因子时,$\mu(n)=0$. 当n没有平方因子时,$\mu(n)=(-1)^{\omega(n)} ...
- 杜教筛 狄利克雷卷积入门
补下暑假的坑 杜教筛看了两天勉勉强强才看懂了一点点 杜教牛逼 杜教筛意义 其实,对于一般的数论题,线性筛已经非常的优秀了. 但是就是有那些duliu出题人,硬是要把数据出到1e10之类的,就看你会不会 ...
- 欧拉函数+狄利克雷卷积+莫比乌斯函数+莫比乌斯反演+整除分块+杜教筛
Powered by:NEFU AB-IN 文章目录 欧拉函数 狄利克雷卷积 莫比乌斯函数 莫比乌斯反演 P3455 [POI2007]ZAP-Queries 整除分块 P2522 [HAOI2011 ...
- 迪利克雷卷积,莫比乌斯反演,杜教筛
常见积性函数 μ(n)={1,i=10,n无2次方以上的素因数(−1)k,k为不同素因数的种类\mu(n)=\begin{cases} 1,&i=1\\ 0,&n无2次方以上的素因数\ ...
- 数论题中(杜教筛)交换求和符号
文章目录 方阵 下三角 约数倍数 狄利克雷卷积 以及 杜教筛学习笔记 突然对交换求和符号有了新的理解了,用矩阵转置的思路就很好理解,外层循环相当于枚举行,内层枚举列,交换次序就是先枚举列,再枚举行 方 ...
- 2019年CCPC - 网络赛E:huntian oy【杜教筛】
题目: HDU---6706:huntian oy 题意: 给定N,a,b,求下面式子的值(求和后再mod 1e9+7): 分析: 一直怯于杜教筛不敢去学习[一看就会的杜教筛],今天终于迈出了这一步, ...
最新文章
- hihocoder 1152 Lucky Substrings
- Flask-RESTful之响应处理
- Python Bokeh 库进行数据可视化实用指南
- python观察日志(part18)--遍历文件夹下文件并判断后缀
- 清空缓存的命令_最实用的6个网络命令,网络故障不求人
- Asterisk权威指南/第二章 Asterisk架构
- 剑指Offer - 面试题11. 旋转数组的最小数字(二分查找)
- (计算机组成原理)第七章输入和输出系统-第四节1:I/O方式之程序查询方式
- 别让for循环毁了你的程序(一)
- mysqlserver输入密码后闪退_iOS降级教程:iOS 14 后如何降级到ios13?
- 基于神念TGAM的脑波小车(1)
- 给敏感字符加星号处理
- 2020-11-25
- 安恒信息明御WEB应用防火墙产品白皮书
- 3DES加密(iOS,Android,Java)
- 交换字符使得字符串相同
- 关于win10打印机设置错误,无法打印的解决办法
- 行驶证识别/行驶证OCR识别全方位解析
- 十个细节透露女人心思
- 移动web开发viewport记录
热门文章
- 少年派 —— 之 读书
- 集成声网(Agora)SDK踩坑集锦系列
- Pandas将列表(List)转换为数据框(Dataframe)进阶篇
- 理论基础篇 -- 【计算机网络通关29讲笔记】
- 【SpringBoot】SpringBoot 整合 MyBatis
- unity警告“Tiled GPU perf. warning: RenderTexture color surface (0x0) was not cleared/discarded, doin”
- 耳朵上的艺术品,飞利浦圈铁真无线耳机JT60无敌了!
- 随机抽人名小程序_这些好用的微信小程序,你知道多少?
- 【半导体先进工艺制程技术系列】SOI技术(下)
- 苹果手机来电归属地_手机号码归属地能否取消?工信部回复!