「学习笔记」洲阁筛

前言

Q: min_25筛外面套一个数论分块复杂度是多少的啊QwQ

A:

复杂度不变啊

如果你要在 min25 外面套一个数论分块

说明你根本没有掌握 min25 筛吧

很久很久以前,我非常 naive 地认为只要会 min_25 筛就可以了,洲阁筛这种东西根本不要学,直到碰到了这题

很显然是一个数论分块里面套一个 min_25 筛,但是非常难受的是这玩意看着复杂度就很不对而且确实慢出天际,于是就有了这篇 blog。

前置姿势

min_25 筛(?)

用途和限制

和 min_25 筛限制完全一样(如果有不同之处敬请指正),可以支持在 (mathcal Oleft(frac {n ^ frac 34} {log n} ight)) 的时间复杂度内对所有 (lfloor frac nd floor) 求出 (sum_{i=1}^{lfloor frac nd floor} mathbf f(i)),在求单点时常数比 min_25 筛更大。

算法流程

Part I

和 min_25 筛的第一部分完全一样,所以本文沿用 min_25 筛中 (mathbf g(n, i)) 的定义。

Part II

(mathbf S(n, j) = sum_{i=1}^n [mathrm{minp}(i) geq mathbf P_j or i in mathbf P] mathbf f(i)),那么有 (mathbf S(n, |mathbf P| + 1) = mathbf g(n, |mathbf P|))

转移就是枚举 (mathbf P_j) 的次数:

[mathbf S(n, j) = mathbf S(n, j + 1) + sum_{mathbf P_j^{e + 1} leq n} mathbf f(mathbf P_j^e) left(mathbf Sleft( frac n {mathbf P_j^e}, j + 1 ight) - mathbf g(mathbf P_j, |mathbf P|) ight) + mathbf f(mathbf P_j^{e + 1}) ]

可以发现能够使用滚动数组优化。

原文地址:https://www.cnblogs.com/cj-xxz/p/14409969.html