zoukankan      html  css  js  c++  java
  • 一道题

    求:$sum_{i=1}^{n}sum_{d|i}(d,frac{i}{d})$.

    重要套路:$(a,b)=d,ableqslant n$ 求这个(a,b)的个数,又要保证后面的限制,可以这样缩:符合要求的$(a,b)$一定有$x,y$使得$(x,y)=1,xd*yd<=n$,因此$xy<=frac{n}{d^2}$。

    $sum_{i=1}^{n}sum_{d|i}(d,frac{i}{d})$

    $=sum_{d}dsum _{a}sum _{b}((a,b)=d),ab<=n$

    $=sum_{d}dsum_{x}sum_{y}I ((x,y)),xy<=frac{n}{d^2}$

    $=sum_{d}d sum_{i=1}^{frac{n}{d^2}}sum_{d'|i}I ((d',frac{i}{d'}))$

    $=sum_{d}d sum_{i=1}^{frac{n}{d^2}}sum_{d'|i}sum_{t|d'wedge t|frac{i}{d'}}mu(t)$

    $=sum_{d}dsum_{t}mu(t)sum_{a}sum_{b}(a*bleq frac{n}{d^2},t|a,t|b)$

    $=sum_{d}dsum_{t}mu(t)sum_{i=1}^{frac{n}{d^2t^2}}d(i)$

    闪一句,$d(i)$表示$i$的因数个数。

    $=sum_{w=1}^{n}varphi (w)sum_{i=1}^{frac{n}{w^2}}d(i)$

    前面那部分phi只用枚举到根号即可。而后面的d(i)有

    $sum_{i=1}^{n}d(i)=sum_{i=1}^{n}left lfloor frac{n}{i} ight floor$

    闪一句,这里考虑每个数作为几个数的因数即可。

    然后就可以根号套根号,复杂度大概是$sqrt{n}lnn$。

  • 相关阅读:
    javaSE基础(三)
    javaSE基础(二)
    javaSE基础(一)
    文件目录爬虫
    前自增 与 后自增
    查找 与 排序 总结
    python 使用 grpc
    python3.7 安装 uwsgi
    go
    go
  • 原文地址:https://www.cnblogs.com/Blue233333/p/8309629.html
Copyright © 2011-2022 走看看