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)\),常数也很小。

  • 相关阅读:
    minio 注意事项
    vim编辑器的快捷命令
    kubernetes Label的增删改查
    JVM java堆内存
    navicat注册机
    hibernate学习笔记_基础配置
    Hibernate学习笔记_helloworld
    junit4初级
    Struts学习笔记_声明式异常处理
    Struts学习笔记_拦截器
  • 原文地址:https://www.cnblogs.com/bestlxm/p/13057690.html
Copyright © 2011-2022 走看看