2023.8.22 闲话

哦哦哦,又是一年七夕,看看我去年七夕在干什么?——「朴素计树」。这都啥玩意啊?

竟然更闲话了 .

我感觉我已经完全弄懂 emacs 5x5 的做法了 .


对于典中典问题 \(\mu^2\) 前缀和,icyM3tra 老师的做法比较强劲,学习一下 .

分为时间最优和空间最优两种 .

因为记号太优秀了所以我也用 \(\mathrm S\mu^2\) 表示 \(\mu^2\) 前缀和 .

首先考虑 \(O(n^{0.4})\) 的做法,其实和平凡做法就差一点 . 首先是整除分块:

\[\mathrm S\mu^2(n)=\sum_{i=1}^{\sqrt n}\mu(i)\left\lfloor\dfrac n{i^2}\right\rfloor \]

接下来就是要杜教筛求 \(\mathrm S\mu\),这里整除分块不是常见整除分块,可以把杜教筛阈值分治部分的阈值调一下,根据一些分析可以得到复杂度是 \(O(n^{0.4})\)(自己算吧,不写了不写了).

使用一些东西应该就可以除一个 log,不太了解这个 . 那么目前能想到的时间最优就是这个了 .

空间最优的话考虑改成递归形式:

\[\mathrm S\mu^2(n)=n-\sum_{i=2}^{\sqrt n}\mathrm S\mu^2\left(\left\lfloor\dfrac n{i^2}\right\rfloor\right) \]

就是先对那个整除分块反演或者容斥然后移项 .

事实上,此处的两种形式:「整除分块形式」与「递归形式」的转换,我们早已见过:洛谷 P9511 大豆 .

类似杜教筛,分析出来时间复杂度是:

\[\sum_{i=1}^{\sqrt[3]{n}}\sqrt[3]{\dfrac n{i^2}}=O(n^{4/9}) \]

空间复杂度的话因为只用 \(O(n^{1/3})\) 个点值(因为 \(\big\lfloor\frac{\lfloor\frac n{i^2}\rfloor}{j^2}\big\rfloor=\lfloor\frac n{(ij)^2}\rfloor\)),所以就是 \(O(n^{1/3})\) 的 .

一个抽象的常数优化:根据洛谷 P8883 幻想中成为原神的结论,\(\mathrm S\mu^2(n)\)\(\frac{6n}{\pi^2}\) 差不多,所以直接存 \(\mathrm S\mu^2(n)-\frac{6n}{\pi^2}\),这样大概可以压到半个 word 里优化空间常数 .

虽然和 SoyTony 筛的形式比较相似,但是这两种算法实际上是不能拼起来平衡的,比较失败 .

And in that light, I find deliverance.

或许这种东西应该被叫做标准处理方法或者「套路」了 .

posted @ 2023-08-22 10:42  Jijidawang  阅读(140)  评论(2编辑  收藏  举报
😅​