• 「笔记」$Min\_25$筛


    总之我也不知道这个奇怪的名字是怎么来的。

    (Min\_25)筛用来计算一类积性函数前缀和。
    如果一个积性函数(F(x))在质数单点是一个可以快速计算的关于此质数的多项式。
    那么可以用(Min\_25筛)
    这个东西和质数关系很大。
    我们考虑分开处理质数和非质数的贡献。

    首先处理质数:
    设,(R(n))(n)的最小质因子,(P)为质因子集合,(p_i)为从小到大第(i)个质数。
    (forall xin P,F(x)=x^k)
    设:

    [g(n,j)=sumlimits_{i=1}^{n}i^k[iin P||R(i)>p_j] ]

    那么转移:
    如果当前(p_j^2>n),因为最小的含有(p_j)的合数是(p_j^2),所以没有贡献需要减掉。
    那么:

    [g(n,j)=g(n,j-1) ]

    如果当前(p_j^2<=n),这个时候要减掉一些贡献了。
    这些贡献是(p_j)所带来的,而这个时候左右(R(i)=p_j)的贡献都需要被减掉。
    考虑求出这部分的贡献。
    那么显然是对于其所能达到的最小的合数开始计算到所能达到的最大合数。
    这一部分显然是属于([p_j^2,n])
    那么考虑这一部分的贡献。
    可以容易的得到转移方程。

    [g(n,j)=g(n,j-1)-p_j^k(g(frac{n}{p_j},j-1)-g(p_j-1,j-1)) ]

    这样合并转移表达式就是:

    [g(n,j)= egin{cases} g(n,j-1)&p_j^2>n\ g(n,j-1)-p_j^k(g(frac{n}{p_j},j-1)-g(p_j-1,j-1))&p_j^2leq n\ end{cases} ]

    初始化一下:

    [g(p_j,j)=sumlimits_{i=1}^{j}p_i^k ]

    这样我们就计算了质数部分了。
    然后考虑计算真正的函数前缀和。
    设$$S(n,j)=sumlimits_{i=1}^{n}F(i)[R(i)geq p_j]$$
    区分计算质数和合数的贡献。
    考虑质数部分:(g(n,|P|)-sumlimits_{i=1}^{j-1}F(p_i))
    合数部分考虑枚举最小质因子及其在某个数中的幂次,这里要满足(frac{n}{p_k^e}>p_k),这样才能保证这个数的最小质因数被除尽。
    由于我们先暂时的不考虑1的贡献,所以需要加上(p_k)的某次幂的贡献,所以这里的贡献是:

    [sumlimits_{kgeq j}sumlimits_{p_k^{e+1}<n}(F(p_k^e)S(frac{n}{p_k^e},k+1)+F(p_k^{e+1})) ]

    这样就得到了我们的递推式了:

    [S(n,j)=g(n,|P|)-sumlimits_{i=1}^{j-1}F(p_i)+sumlimits_{kgeq j}sumlimits_{p_k^{e+1}<n}(F(p_k^e)S(frac{n}{p_k^e},k+1)+F(p_k^{e+1})) ]

    答案就是:

    [ans=S(n,1)+F(1) ]

    复杂度不知道。
    但是在(nleq 10^{13})范围里面跑得很快而且比州阁筛好写很多。

  • 相关阅读:
    CentOS7下Tomcat启动慢的原因及解决方案
    在SpringBoot中使用RabbitMQ
    SpringBoot 中使用Redis分布式锁
    微信小程序个人入门开发
    CentOS 通过 expect 批量远程执行脚本和命令
    (七)Spring Cloud 配置中心config
    (六)Spring Cloud 网关Zuul
    (五)Spring Cloud 熔断器 hystrix
    用Sql Server自动生产html格式的数据字典
    TCP介绍
  • 原文地址:https://www.cnblogs.com/Lrefrain/p/12318781.html
Copyright © 2020-2023  润新知