前言
原本以为会了杜教筛就能走遍积性函数题的天下都不怕的了,结果5月省赛时遇到了专门卡杜教筛的题,只好滚回去学了…结果省赛之后一直在忙这忙那的,然后一拖拖到了暑假的现在才有时间来补Min-25筛的内容。
复杂度 O ( n 3 4 log n ) O(\frac{n^\frac{3}{4}}{\log n}) O(lognn43),而且据说常数非常优秀
证明?那是什么,能吃吗?
相关链接
Min-25筛原理:
Min25筛小结
min25筛学习笔记
【学习笔记】Min25筛
模板改编自:
LibreOJ 6053 简单的函数(Min25筛)
min25筛学习笔记
注意
正如在上面的链接中所提到的,Min-25筛使用条件是:
- f ( x ) f(x) f(x) 在 x ∈ p r i m e x \in prime x∈prime 的时候要能够用多项式表示,如 f ( p ) = p 2 + p f(p)=p^2+p f(p)=p2+p
- f ( x k ) f(x^k) f(xk) 在 x ∈ p r i m e x \in prime x∈prime 时要能够快速算出
关于第一点,之所以要求其能用多项式表示,是为了能把其写成多个完全积性函数的若干倍的和/差,这样在第一部分 P j 2 ≤ n P_j^2 \leq n Pj2≤n 时才可以把 f ( P j ) f(P_j) f(Pj) 直接提取出来。
关于第二点,则是为了能在第二部分中以 O ( 1 ) O(1) O(1) 复杂度算出 f ( x k ) , x ∈ p r i m e f(x^k),x\in prime f(xk),x∈prime,否则复杂度将变大。
故Min-25筛并不只能作用于积性函数,只要函数 f f f 满足以上两个条件,就可以使用Min-25筛在低于线性的复杂度下求其前缀和。(比如2020年CCPC网络赛中有一题就是用Min-25筛来求质数的前缀和)
在第一部分求多项式的不同次项时,只会求 g ( ⌊ n i ⌋ ) g(\lfloor \frac{n}{i} \rfloor) g(⌊in⌋),因为只有这些值会被用到。虽然这样子能节省一定的时间,但是也因为不同的 n n n 所对应的