两种筛
Min-25 筛
1 - 核心思想
使用一种类似于 dp 的方式,以及最小质因数 \(\le \sqrt n\) 的性质,来优化求积性函数前缀和的复杂度。
2 - 大体过程
2.1 - 记号与约定
\(p_i\) 表示第 \(i\) 个质数。
\(h(x)\) 表示 \(x\) 的最小质因子。
\(\mathbb{P}\) 表示质数集。
给出 \(F_{k}(n)\) 的定义为:
给出 \(G(n)\) 的定义为:
2.2 - Part 1:转化为求出 \(G(n)\)
考虑计算 \(F_{k}(n)\),先把其分为两个部分,质数与合数,对于合数部分,枚举最小质因数,并将其全部除去:
可以证明复杂度为 \(O(n^{1 - \epsilon})\),问题在于求出 \(G\) 的 \(O(\sqrt n)\) 个点值(只有形如 \(\lfloor \frac{n}{y} \rfloor\) 的 \(x\) 有用)。
2.3 - Part 2:求出 \(G(n)\)
参考一下筛法,可以设计 \(G_{k}(n)\) 定义为:
存在转移:
注意,此处 \(f'(p)\) 是与 \(f(p)\) 在质数处点值相同的完全积性函数。
PN 筛
1 - 核心思想
引入 Powerful Number 为,在质因数分解中,不存在指数为 \(1\) 的项的数。
每个 Powerful Number 都能表示为 \(a^2b^3\)。那么 \(n\) 以内该类数的个数不大于:
2 - 大体过程
如要解决积性函数 \(f\) 的前缀和问题,我们不妨令 \(g\) 为:在质数处取值与 \(f\) 相同的积性函数,并且 \(g\) 的前缀和容易求出。
构造 \(h\) 使得 \(g * h = f\),考虑对 \(p \in \mathbb{P}\) 有:
因此 \(h(x) \not = 0\) 的一个必要条件是 \(p\) 是 Powerful Number 或 \(p = 1\)。
得到:
如果我们能快速得到 \(h(x)\) 和 \(\sum g(x)\) 的 \(O(\sqrt n)\) 个点值,那么便能快速求出 \(f\) 的前缀和。
难点在于构造 \(g, h\),这个因题而异。

浙公网安备 33010602011771号