标签:函数 rac 约数个数 约数和 复杂 ali 复杂度 约数 size
数论分块:
大致就是求类似于$ \sum\limits_{i=1}^m \left\lfloor\frac{m}{i}\right\rfloor$的值的方法
首先发现$ \left\lfloor\frac{m}{i}\right\rfloor$最多只有$ 2*\sqrt{m}$种取值
观察到对于i,$ \left\lfloor\frac{m}{\left\lfloor\frac{m}{i}\right\rfloor}\right\rfloor$ 是n除i下取整的相同取值的最右位置。
那么只要每次跳到当前取值的最靠右位置,计算这个值的贡献,然后跳到下一个取值的最左位置(即之前的最右位置+1),不断做下去即可
复杂度$ O(\sqrt{m})$
积性函数:
即满足$ f(1)=1$ $ f(xy)=f(x)f(y)$ $ (gcd(x,y)==1)$的函数
积性函数一定是数论函数,即自变量一定为正整数
常见积性函数:
$ id(i)=i$
$ id_k(i)=i^k$
$ 1(i)=1$
$ e(1)=1, e(n)=0 (n>1)$
$ \mu$(莫比乌斯函数)
$ \phi$(欧拉函数)
$ d(i)=\sum\limits_{d|i} 1$ (约数个数)
$ σ(i)=\sum\limits_{d|i} d$ (约数和)
狄利克雷卷积:
对于两个积性函数$ f$和$ g$,卷积结果为函数$ h$,则有
$ h(i)=\sum\limits_{d|i}f(i)g({i\over d})$
狄利克雷卷积满足交换律
不难发现卷积结果$ h$也是一个积性函数
以下用$ *$代替狄利克雷卷积,即$ f*g$ 就是$ f$和$ g$的狄利克雷卷积结果
积性函数的性质:
$ e$为单位元,即任何积性函数与$ e$的狄利克雷卷积的结果均等同于自身
由$ e(n)=\sum\limits_{d|n}\mu(d)$ (莫比乌斯函数的性质)可得
$ e=1*\mu$
由$ n=\sum\limits_{d|n}φ(d)$ (欧拉函数的性质)可得
$ id=φ*1$
由以上两条加上狄利克雷卷积的性质可得
$ φ=\mu*id$
也就是$ φ(n)=\sum\limits_{d|n}\mu(d){n\over d}$
标签:函数 rac 约数个数 约数和 复杂 ali 复杂度 约数 size
原文地址:https://www.cnblogs.com/DreamlessDreams/p/8858697.html