zoukankan      html  css  js  c++  java
  • 一些特殊的数论卡常技巧

    约数个数前缀和

    \(F\left(n\right)=\sum\limits_{i=1}^n\sum\limits_{j\vert i}1=\sum\limits_{i=1}^n\left\lfloor\frac{n}{i}\right\rfloor=\sum\limits_{ij\le n}1=2\sum\limits_{i=1}^{\left\lfloor\sqrt n\right\rfloor}\left\lfloor\frac{n}{i}\right\rfloor-\left\lfloor\sqrt n\right\rfloor^2\)

    PS: 这个东西也能用 Stern-Brocot 树进一步优化到 \(O\left(n^{1/3}\log n\right)\) 我觉得没人考场写这个

    约数和前缀和

    \(F\left(n\right)=\sum\limits_{i=1}^n\sum\limits_{j\vert i}j\)
    这个东西等价于在 \(x\in \left[1,n\right]\)\(y=\frac{1}{x}\) 曲线下所有整点的纵坐标之和。
    枚举 \(i,j\) 中较小的一个
    \(F\left(n\right)=\sum\limits_{i=1}^{\left\lfloor\sqrt n\right\rfloor}i\left(\left\lfloor\frac{n}{i}\right\rfloor-i\right)+\sum\limits_{j=i}^nj\)

    已知质数幂处点值的狄利克雷卷积

    \(F = G\times H\)
    可以发现 \(H = \prod\limits_{p\in prime}H_p\)
    那么可以对每个 \(G_p\) 拆开,单独与 \(F\) 做狄利克雷乘法。
    复杂度优化到了 \(O\left(n\log\log n\right)\),常数也很小。

  • 相关阅读:
    小a和uim之大逃离(dp)
    c++stl应用入门
    tar: 从成员名中删除开头的“/”
    yii中rights安装
    python中operator.itemgetter
    python中时间和时区
    python --那些你应该知道的知识点
    rsync拉取远程文件
    django中时区设置
    django中添加用户
  • 原文地址:https://www.cnblogs.com/bestlxm/p/13057690.html
Copyright © 2011-2022 走看看