min_25 筛

Flamire Lv4

学习笔记。

只追求遇到的时候能够快速写出来。


min_25 的复杂度依赖于这个式子:


min_25 可以求解某积性函数 $f$ 块筛处的前缀和,条件:

  • 存在一个容易求前缀和的积性函数 $g$ 在质数处点值与 $f(p)$ 相同

  • $f(p^k),g(p^k)$ 可以快速求值


min_25 使用如下过程求解 $f$ 的块筛前缀和:

  • 第一部分:从 $g$ 块筛前缀和,得到 $g$ 块筛处,质数位置前缀和,由于 $g(p)=f(p)$,也即 $f$ 块筛处,质数位置前缀和

  • 第二部分,由 $f$ 块筛处,质数位置前缀和,得到 $f$ 块筛处前缀和


第一部分:

令 $G(n,a)$ 表示 $[1,n]$ 的数里,埃筛筛完前 $a$ 个质数后没被筛掉的数的 $g$ 值的和,具体地,包含以下三种数:

  • $1$

  • $n$ 以内的质数

  • $n$ 以内的,最小质因子 $>p_a$ 的合数

那么我们有如下转移式:

其中 $c$ 为最大的非负整数使得 $p_a^c\le n$

初值为 $G(n,0)=\sum_{i=1}^ng(i)$,最后得到 $G(n,\pi(\sqrt n))=\sum_{1\le p\le n,p
\in\text{prime}}g(p)$

由于 $p_a\le\sqrt n$,所以我们可以预先线性筛出来前 $\sqrt n$ 个位置的 $g$ 值,这样就可以 $O(1)$ 回答质数处的前缀和

直接写上面的转移式即可,注意到只有 $c\ge2$ 的位置才有意义,所以我们可以只枚举 $\ge p_a^2$ 的块筛,那么复杂度由最开始的式子,是 $O(n^{3/4}/\ln n)$ 的


第二部分:

令 $F(n,a)$ 表示 $[1,n]$ 的数里,埃筛筛完前 $a$ 个质数后没被筛掉的数的 $f$ 值之和

那么我们有如下转移式:

其中 $c$ 为最大的非负整数使得 $p_a^c\le n$

初值为 $F(n,\pi(\sqrt n))=\sum_{1\le p\le n,p\in\text{prime}}f(p)=G(n,\pi(\sqrt n))$,最后得到 $F(n,0)=\sum_{i=1}^nf(i)$

复杂度分析与上面类似。


实际上,如果求块筛内质数个数的话,可以直接用第一部分,递推式为:

  • Title: min_25 筛
  • Author: Flamire
  • Created at : 2024-12-07 00:00:00
  • Updated at : 2025-03-05 18:14:49
  • Link: https://flamire.github.io/2024/12/07/min_25/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
min_25 筛