zoukankan      html  css  js  c++  java
  • 推式子

    (sum_isum_j[lcm(i,j)=n],nin[1,1e8])

    (=sum_{i=1}^nsum_{j=1}^n[i*j=n*gcd(i,j)])

    (=sum_{d|n}sum_{i=1}^{frac{n}{d}}sum_{j=1}^{frac{n}{d}}[i*j=frac n d &&gcd(i,j)=1])

    (=sum_{d|n} f(d),f(n)=2^{n的不同质因数的个数})

    时间复杂度(O(n))

    (ans=sum_{k=1}^nsum_{i=1}^ksum_{j=1}^kgcd(i,j,k))

    ((Id^2)*phi)怎么杜教筛?

    • 法一

    最后一个式子(sum_{T=1}^nT^2sum_{k=1}^{lfloorfrac nT floor}phi(k))

    整数分块+杜教筛(phi)

    虽说是求了(sqrt n)次但实际只有(2sqrt n)个值有用,况且算(S(n))会把这些值都算一遍

    [lfloorfrac{lfloorfrac ab floor}{c} floor=lfloorfrac a{bc} floor ]

    • 法二

    倒数第二个式子(sum_{k=1}^nsum_{T|k}T^2phi(frac k T))

    [Id^2*phi*1=Id^2*Id,g(i)=1,h(i)=sum_{d|i}d^2*frac id ]

    [sum_{u=1}^n h(u)=sum_{i=1}^nsum_{j=1}^n[ij<=n]i^2j ]

    [sum_{i=1}^nsigma(i)=sum_{i=1}^nsum_{d|i}d=sum_{d=1}^ndlfloorfrac nd floor ]

    可以整除分块(sqrt n)做(本来每层算S也要(sqrt n)

    预处理后时间复杂度(O(n^{frac23}))

    复杂度证明:?暂且当$ sum_i^n i^{alpha} = O(n^{1+alpha})$

  • 相关阅读:
    RK3399之时钟
    C之{}注意点
    ARM之不用段寄存猜想
    linux驱动之入口
    android之HAL
    git
    消息中间之ActiveMQ
    Maven之阿里云镜像仓库配置
    清理Oracle临时表空间
    Tomcat控制台日志输出到本地文件
  • 原文地址:https://www.cnblogs.com/aurora2004/p/12582040.html
Copyright © 2011-2022 走看看