2022.7.14 闲话

闲话,随便写写吧 .


Divisor Summatory Function 定义为

\[T(n)=\sum_{i=1}^n\left\lfloor\dfrac ni\right\rfloor \]

非常简单吧 .

后面讨论的均为多组询问 .

记号约定:\(O(f(n)) - O(g(n))\) 表示 \(O(f(n))\) 复杂度预处理,\(O(g(n))\) 复杂度询问 .


Algorithm -1:暴力,\(O(1)-O(n)\) .

Algorithm 0:每次整除分块,\(O(1)-O(\sqrt n)\) .

Algorithm 1\(O(n)\) 递推,\(O(n)-O(1)\)(洛谷 P3708).

这表明 \(\displaystyle T(n)=\sum_{i=1}^n\sigma_0(i)\) .


Algorithm 2

另一方面,这个是反比例函数下整点个数,根据双曲线对称性,有

\[T(n)=2\sum_{i=1}^{\sqrt n}\left\lfloor\dfrac ni\right\rfloor-\left\lfloor\sqrt n\right\rfloor^2 \]

不过并不能加快复杂度,只能让实现更容易一点 .

其实有魔法可以做到 \(O(n^{1/3}) - O(1)\),见 link .


我水完了 .

高维情况可以看上面的论文 .

End

posted @ 2022-07-14 23:47  Jijidawang  阅读(226)  评论(1编辑  收藏  举报
😅​