zoukankan      html  css  js  c++  java
  • Min_25筛学习笔记

    Min_25筛可以在(O(frac{n^frac{3}{4}}{log n}))(O(n^{1-epsilon}))?反正不会证)的时间内求出部分与素数有关的函数的前缀和。在常规范围内(一般(10^{10})),它比洲阁筛不知道高到哪里去了

    例:求积性函数(f(x))的前(n)项和((nleqslant10^{10}))

    第一步:对于每个(1leqslant ileqslant n),都需要求出(sum_{p=1}^{n/i}[p ext{是素数}]f(p))

    由于只用求素数处的值,可以找一个(g(x))为完全积性函数,使得(f(x))(g(x))在素数处相等,且(g(x))容易求前缀和。

    (p_i)为第(i)个素数,(minp_i)表示(i)的最小质因数,(s_i=sum_{j=1}^{i}g(p_j))(t_{i,j}=sum_{w=2}^{n}[win p; ext{or};minp_w>p_j]g(w))。显然,(t_{i,0}=sum_{w=1}^{i}g(w)-1)

    考虑如何由递推得到(t_{i,j}),可以看出(t_{i,j}=t_{i,j-1}-(t_{lfloorfrac{i}{p_j} floor,j-1}-s_{j-1}) imes g(p_j)),即从(t_{i,j-1})中减掉(minp_x=p)(g(x))

    但是,当(lfloorfrac{i}{p_j} floor<p_{j-1})时,就会出现多减了的情况。仔细思考一下,当(p_j^2leqslant i)(p_{j+1}>i)时,(forall xin[2,i],minp_xleqslant sqrt{n}),即(minp_xleqslant p_j),就可以停止计算,此时(lfloorfrac{i}{p_j} floorgeqslant p_j>p_{j-1}),又由于(p_i)递增,所以不会多减。

    容易发现,第一维(i)只有(O(sqrt{n}))种取值,所以可以做一些映射,再用滚动数组优化掉第二维。设(sum_i=t_{i,infty})

    复杂度:(O( ext{不会证}))

    第二步:求(sum_{i=2}^nf(i))

    (sol(i,j)=sum_{i=2}^n[win p; ext{or};minp_wgeqslant p_j]f(i)),则(sol(i,j)=sum_i+sum_{id=j,p_{id}^2leqslant i}sum_{k=1,p_{id}^{k+1}leqslant i}(sol(frac{i}{p_{id}^k},id+1)-s_{id})*f(p_{id}^k)+f(p_{id}^{k+1})),即枚举最小质因数出现的次数。

    复杂度:(O( ext{还是不会证}))

  • 相关阅读:
    【免费】承接各类SharePoint项目开发工作
    数据仓库(一)Introduction
    几种极其隐蔽的XSS注入的防护
    Google SEO优化技术的12个要点总结
    数据结构算法必备
    算法数据结构
    python发邮件
    MySQL数据库中的Date,DateTime,TimeStamp和Time类型
    使用.htaccess实现301重定向
    SharePoint 2010 初次安装时使用向导启动的服务
  • 原文地址:https://www.cnblogs.com/ztc03/p/11996263.html
Copyright © 2011-2022 走看看