zoukankan      html  css  js  c++  java
  • 杜教筛小记

    杜教筛小记

    对于一个函数(F(n)),要在较低时间内求前缀和(S_F(n)=sum_{i=1}^nF(i))

    假设我们能找到一个函数(G(n))使得(G(n),S_{F oplus G}(n))能在较短时间内算出

    其中(oplus)表示狄利克雷卷积,((Foplus G)(n)=sum_{d|n}F(d)G(frac{n}{d}))

    那么就有

    (displaystyle S_{Foplus G}(n)=sum_1^n G(i)S_F(lfloorfrac{n}{i} floor))

    (displaystyle G(1)F(n)=S_{Foplus G}(n)-sum_2^nG(i)S_F(lfloorfrac{n}{i} floor))

    这个(lfloorfrac{n}{i} floor)的个数是(O(sqrt n))的,数论分段求解

    由于每次从(2)开始枚举,每次子问题大小至少减半

    (然而并没有分析复杂度)

    (n)较小时可以直接预处理出来前(m)个((m)为以常数)

    不要存状态( ext{dp}),直接递归求解用( ext{map})维护记录即可

    ps:实际上对于一个固定的(n),每次计算(x)的答案时,可以根据当前的(lfloor cfrac{n}{x} floor)为状态编号,去掉了( ext{map})

    (m=n^{frac{2}{3}})时,复杂度最优为(O(n^{frac{2}{3}}))


    例子1:

    对于(F(n)=mu(n)),求(S_mu(n))

    由于(sum_{d|n}mu(d)=[n=1])

    那么就知道可以构造(G(n)=1)

    ((Foplus G)(n)=[n=1])

    (S_{Foplus G}(n)=1)

    (displaystyle S_F(n)=S_{Foplus G}(n)-sum_2^nS_F(lfloorfrac{n}{i} floor))



    例子1.5

    (F(n)=mu(n)n^k),求(S_F(n))

    (G(n)=n^k)

    (displaystyle (Foplus G)(n)=sum _{d|n} mu(d)d^k (frac{n}{d})^k=n^ksum_{d|n} mu(d)=[n=1]cdot n^k)

    (displaystyle S_F(n)=1-sum_{i=2}^n i^kS_F(lfloor frac{n}{i} floor ))

    只要通过一些手段得到(i^k)前缀和即可



    例子2:

    对于任何(F(n)=sum_{d|n}mu(d)H(frac{n}{d})),其中(H(n))前缀和可以求

    类似上面的,构造(G(n)=1)

    ((Foplus G)(n)=sum_{d|n}H(d)sum_{k|frac{n}{d}}mu(k)=H(n))

    (displaystyle S_F(n)=S_{H}(n)-sum_2^nS_F(lfloorfrac{n}{i} floor))

    [ ]

    例子3+3.5:

    (F(n)=varphi(n)cdot n^k),求(S_F(n))

    性质:(displaystyle sum_{d|n}varphi(d)=n)

    原理简要证明:满足(gcd(i,n)=frac{n}{d})(i)共有(varphi(d))个,则累和就是枚举了所有(gcd(i,n))进行统计

    所以构造(G(n)=n^{k})

    (displaystyle (Foplus G)(n)=sum_{d|n}F(d)G(frac{n}{d})=sum_{d|n} varphi(d)d^k(frac{n}{d})^{k}=sum_{d|n} varphi(d) n^{k}=n^{k+1})

    同样的只需要求出

    (displaystyle S_{Foplus G}(n)=sum_{i=1}^n i^{k+1})

    (displaystyle S_G(n)=sum_{i=1}^n i^k)

  • 相关阅读:
    使用MVC模型的几个常见误区
    ModelViewControl
    真的简单,还是盲目乐观?
    Kernel Korner Why and How to Use Netlink Socket
    我们手机平台的几个基础模型
    彩信库(mmslib)设计备忘录
    消极状态集
    文摘《十三》
    文摘《十二》
    文摘《十一》
  • 原文地址:https://www.cnblogs.com/chasedeath/p/13092808.html
Copyright © 2011-2022 走看看