zoukankan      html  css  js  c++  java
  • [笔记]杜教筛核心原理

    i=1nj=1mgcd(i,j)
    =d=1ndf(d)
    =d=1ndd|jμ(j/d)F(d)
    =i×j<=niμ(j)F(ij)
    =T=1nF(T)ϕ(T)
    =T=1n[nT][mT]ϕ(T)

    ———-杜教筛:
    已知问题:

    S(n)=i=1nf(i)

    取一个积性函数g使得f*g方便计算前缀和并做如下变换
    (gf)(i)=d|if(d)g(i/d)

    i=1n(gf)(i)=i=1nd|if(d)g(i/d)

    =ij<=nf(i)g(j)

    =i=1ng(i)j=1n/if(j)

    =i=1ng(i)S(n/i)

    就可以得到
    S(n)=1S(n)=g(1)S(n)

    =i=1ng(i)S(n/i)i=2ng(i)S(n/i)

    =i=1n(gf)(i)i=2ng(i)S(n/i)

    后面就是递归计算了,注意要记忆化S

  • 相关阅读:
    邪恶的强制数据转换
    知识普及
    判断是否为一个数字
    parseInt
    webpack学习记录
    数组隐藏属性
    elasticSearch基本使用
    elasticsearch安装和部署
    neo4j索引
    spark yarn 提交作业
  • 原文地址:https://www.cnblogs.com/Extended-Ash/p/9477075.html
Copyright © 2011-2022 走看看