min_25筛学习笔记

神仙东西,考到了学习一下。

条件:$f(x)$为积性函数,$f(p)$低阶多项式,$f(p^k)$可快速求

为啥f(p)要求是个低阶多项式?因为这个要求是完全积性的。

然后可以去预处理一些东西

g[i][j]表示[1,i]中数为质数或low>p[j]的函数和(为f(p)低阶多项式形式)

考虑转移

$$g_{i,j}=g_{i,j-1}-f(p_j)*(g_{i/p_j,j-1}-g_{p_{j-1},j-1})$$

注意的是这个g求的是所有质数的答案,并且容易发现当$j>sqrt{i}$时答案不变

这样复杂度就有保证了。

然后剩下的是算合数的贡献(先把1去掉最后加上)

设S[i][j]表示[1,i]中low>=p[j]的函数和

然后类似上面的,不过因为是积性而非完全积性,需要枚举最低位是谁。

$$S(n,j)=g(n)-sum_{i=1}^{j-1}f(p_i)+sum_{k>=j}sum_{c}F(p_k^c)S(n/p_k^c,k+1)+F(P_k^{c+1})$$

ans=S(n,1)

 

原文地址:https://www.cnblogs.com/hzoi-kx/p/12374686.html