Min_25 筛

Original

\(p_i\) 表示第 \(i\) 个质数。

\(f'\) 为满足 \(f'(p^k)=f(p^k)\) 的某一完全积性函数,\(g(n,i)\) 表示对下标在 \([1,n]\) 中且不为 \(p_1,p_2,\cdots,p_i\) 任何一个的倍数的 \(f'\) 求和,即对用前 \(i\) 个质数埃氏筛后剩余的位置求和。

考虑对 \(g\) 做 DP。显然仅有 \(p_i^2\le n\) 时才会有合数被筛去,并且要是之前剩下来的,但是除却 \(p_1,p_2,\cdots,p_{i-1}\) 这些质数也没有被筛去。

\[g(n,i)=\begin{aligned} \left\{\begin{matrix} g(n,i-1)\qquad &p_i^2>n \\ \\ g(n,i-1)-f(p_i)\times(g(\lfloor\dfrac{n}{p_i}\rfloor,i-1)-g(p_{i-1},i-1)) \qquad &p_i^2\leq n \end{matrix}\right. \end{aligned} \]

注意正是因为 \(g\) 的完全积性,才能用 \(f(p_i)\) 直接乘上去。

观察到有意义的 \(n\) 只有 \(O(\dfrac{\sqrt{n}}{\ln n})\) 个值,滚动第二维,即可递推。

\(S(n,i)\) 表示下标在 \([1,n]\) 中且其最小质因子大于 \(p_i\) 的所有 \(f\) 之和。

\[S(n,i)=g(n,\pi(n))-g(p_i,\pi(n))+\sum\limits_{j>i}\sum\limits_{p_j^k\leq n}f(p_j^k)\cdot (S(\lfloor\dfrac{n}{p_j^k}\rfloor,j)+[k>1]) \]

注:\(\pi(n)\) 是未知的,但是根据前面 \(g(n,\pi(n))=g(n,\pi(\sqrt{n}))\)

后面两项,分别枚举质因数和它的次数。注意到 \(p_j^{k+1}\leq n\)\(S(\lfloor\dfrac{n}{p_j^k}\rfloor,j)\neq 0\) 的必要条件,因此我们同样只需要枚举到 \(p_j^2\le n\) 的质数。

\(g\) 类似,有意义的 \(n\) 只有 \(O(\dfrac{\sqrt{n}}{\ln n})\) 个值。

答案为 \(S(n,0)\)

\(\pi(n)\)

会发现 \(\pi(n)=\sum_{i=1}^n[i\in P]\) 不是一个积性函数的前缀和,但是求 \(g\) 的部分只涉及质数处取值,因此直接令 \(f'=I\),答案就是 \(g(n,\pi(\sqrt{n}))\)

Min_26

这个东西处理和组比较细节,核心是阈值分治。因为一直带着和组在跑,所以能处理出基本和组而非单独的 \(S(n)\)。但是不能扩展到非积性函数。

先放个佬的 文本

posted @ 2023-08-22 16:36  音街ウナ  阅读(9)  评论(0)    收藏  举报