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

    杜教筛​

    我不会什么狄利克雷卷积,但同我反演只用(sum_{d|n}mu(d)=(n==1))这条式子一样,我觉得杜教筛也是相似的。

    例题1:

    (sum_{i=1}^{n}mu(i))范围:(nle10^{10})

    题解:

    引入式子(sum_{d|n}mu(d)==(n==1))

    :这条以及后文引入的两条式子可在莫比乌斯反演那篇博文里看到证明

    考虑(mu(n))(mu(n)=(n==1)-sum_{d|n&d<n}mu(d))

    那么将(mu(n))代入原式

    [sum_{i=1}^nmu(i) ]

    [=sum_{i=1}^n((i==1)-sum_{d|i&d<i}mu(d)) ]

    [=1-sum_{i=1}^nsum_{d|i&d<i}mu(d) ]

    那么,对于(mu(d))来说,它只有在(d|i且d<i)时才会被计算

    换句话说,(mu(d))会在(xdle n)时被计算上((x>1)

    那么我们枚举(x)

    原式既等于

    [=1-sum_{x=2}^nsum_{xd<=n}mu(d) ]

    [=1-sum_{x=2}^nsum_{d=1}^{lfloorfrac{n}{x} floor}mu(d) ]

    稍微换一下符号

    [=1-sum_{x=2}^{n}sum_{i=1}^{lfloorfrac{n}{x} floor}mu(i) ]

    然后我们发现

    woc右边那一块式子怎么那么熟悉((sum_{i=1}^{lfloorfrac{n}{x} floor}mu(i))

    就好像……,就好像最开始要求的那样

    那么我们设最开始的为一个函数:

    [f(n)=sum_{i=1}^nmu(i)=1-sum_{x=2}^{n}sum_{i=1}^{lfloorfrac{n}{x} floor}mu(i)=1-sum_{x=2}^nf(lfloorfrac{n}{x} floor) ]

    那么,总共有根号不同的对于每个(f(n))来说,我们最多要求根号级别的(f(lfloorfrac{n}{x} floor))

    预处理前(n^{frac{2}{3}})(f),然后记忆化搜索即可(后面的f的函数值用哈希表来存(或者map,不过多一个log))

    例题2:

    (sum_{i=1}^{n}varphi(i))范围:(nle10^{10})

    题解:

    引入:$$sum_{d|n}varphi(d)=n$$

    [varphi(n)=n-sum_{d|n&d<n}varphi(d) ]

    原式=$$sum_{i=1}^n(i-sum_{d|ni&d<i}varphi(i))$$

    枚举dx对数

    [frac{n imes(n+1)}{2}-sum_{x=2}^nsum_{dx<=n}varphi(d) ]

    [=frac{n imes(n+1)}{2}-sum_{x=2}^nsum_{d=1}^{lfloorfrac{n}{x} floor}varphi(d) ]

    [=frac{n imes(n+1)}{2}-sum_{x=2}^nsum_{i=1}^{lfloorfrac{n}{x} floor}varphi(i) ]

    设原式=(f(x))

    [f(n)=frac{n imes(n+1)}{2}-sum_{x=2}^nsum_{i=1}^{lfloorfrac{n}{x} floor}varphi(i)=frac{n imes(n+1)}{2}-sum_{x=2}^nf(lfloorfrac{n}{x} floor) ]

    记忆化搜索即可

    复杂度分析:不会,大概调一下预处理的参数,别的博客上面证明是(O(n^{frac{2}{3}}))左右。

    核心:乱推式子+记忆化搜索

    众星因你,皆降为尘。
  • 相关阅读:
    FMDB增删查改
    https相关内容
    支付宝、微信支付参考博客
    下标脚本(Swift)
    函数(swift)
    控制流(swift)
    UIView Methods
    oc js 交互
    我和Lua并非一见钟情,我们期待着日久生情(相遇篇)
    与Python Falling In Love_Python跨台阶(面向对象)
  • 原文地址:https://www.cnblogs.com/Star-dust/p/8146146.html
Copyright © 2011-2022 走看看