两种筛

Min-25 筛

1 - 核心思想

使用一种类似于 dp 的方式,以及最小质因数 \(\le \sqrt n\) 的性质,来优化求积性函数前缀和的复杂度。

2 - 大体过程

2.1 - 记号与约定

\(p_i\) 表示第 \(i\) 个质数。
\(h(x)\) 表示 \(x\) 的最小质因子。
\(\mathbb{P}\) 表示质数集。
给出 \(F_{k}(n)\) 的定义为:

\[F_{k}(n) = \sum_{x = 1}^n [h(x) \ge p_k] f(x) \]

给出 \(G(n)\) 的定义为:

\[G(n) = \sum_{x = 1}^n [x \in \mathbb{P}] f(x) \]

2.2 - Part 1:转化为求出 \(G(n)\)

考虑计算 \(F_{k}(n)\),先把其分为两个部分,质数与合数,对于合数部分,枚举最小质因数,并将其全部除去:

\[\begin{aligned} F_{k}(n) &= G(n) + \sum_{x = 1}^n [x \not \in \mathbb{P} \land h(x) \ge p_k] f(x) \\ &= G(n) + \sum_{p \in \mathbb{P}} \sum_{e \ge 1 \land p^e \le n} f(p^e) (F_{k + 1}(\lfloor \frac{n}{p^e} \rfloor) + [e > 1]) \end{aligned} \]

可以证明复杂度为 \(O(n^{1 - \epsilon})\),问题在于求出 \(G\)\(O(\sqrt n)\) 个点值(只有形如 \(\lfloor \frac{n}{y} \rfloor\)\(x\) 有用)。

2.3 - Part 2:求出 \(G(n)\)

参考一下筛法,可以设计 \(G_{k}(n)\) 定义为:

\[G_k(n) = \sum_{x = 1}^n [h(x) \ge p_k \lor h(x) \in \mathbb{P}] \]

存在转移:

\[G_k(n) = G_{k - 1}(n) - [p_k^2 \le n]f'(p)(G_{k}(\lfloor \frac{n}{p} \rfloor) - G_{k}(p_{k - 1})) \]

注意,此处 \(f'(p)\) 是与 \(f(p)\) 在质数处点值相同的完全积性函数。

PN 筛

1 - 核心思想

引入 Powerful Number 为,在质因数分解中,不存在指数为 \(1\) 的项的数。
每个 Powerful Number 都能表示为 \(a^2b^3\)。那么 \(n\) 以内该类数的个数不大于:

\[\int_{1}^{\sqrt{n}} \sqrt[3]{\frac{n}{x^2}} = O(\sqrt{n}) \]

2 - 大体过程

如要解决积性函数 \(f\) 的前缀和问题,我们不妨令 \(g\) 为:在质数处取值与 \(f\) 相同的积性函数,并且 \(g\) 的前缀和容易求出。
构造 \(h\) 使得 \(g * h = f\),考虑对 \(p \in \mathbb{P}\) 有:

\[f(p) = g(p)h(1) + g(1)h(p) = f(p) + h(p) \]

因此 \(h(x) \not = 0\) 的一个必要条件是 \(p\)Powerful Number\(p = 1\)
得到:

\[\sum_{i = 1}^n f(i) = \sum_{j = 1}^n h(j) \sum_{k = 1}^{\lfloor \frac{n}{j} \rfloor} g(k) \]

如果我们能快速得到 \(h(x)\)\(\sum g(x)\)\(O(\sqrt n)\) 个点值,那么便能快速求出 \(f\) 的前缀和。
难点在于构造 \(g, h\),这个因题而异。

posted @ 2026-05-29 13:48  Include_Z_F_R_qwq  阅读(10)  评论(0)    收藏  举报