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

  • 相关阅读:
    裂项相消
    斜率和问题
    抛物线与椭圆
    数列通项
    双曲线离心率
    优化问题
    单调性讨论
    角平分线
    隐零点
    自动任务调度系统
  • 原文地址:https://www.cnblogs.com/Extended-Ash/p/9477075.html
Copyright © 2011-2022 走看看