2024.2.20 闲话
本来昨天想发一个闲话的,因为是 hina 生日,不过最终也没发成 .
K8He 歌:プロポーズ - 内緒のピアス feat. 可不 .
计算:
其中 \(\mathbb P\) 是素数集 .
(下面将有一段弹性空白)
(min25 筛:\(O(\frac{n^{3/4}}{\log n})\))
定义 \(\omega_k(n)\) 是 \(n\) 中大于 \(k\) 的素因子个数,那么对于 \(x<n-\sqrt n\),有 \(\omega_{n-x}(x)=[x\in\mathbb P]\) .
现在我们知道一种判断素数的方法了,考虑计算:
注意这显然和原问题是差不多难的 . 假设我们目前能计算 \(F(n)\),则可以对 \(i\le\sqrt n\) 的部分通过枚举不大于 \(\sqrt n\) 的素数来分解每个 \(n-i\)(根据 Mertens 第二定理,这里是 \(\Theta(\sqrt n\log\log n)\) 的)来去除对应的贡献,然后再加入每个正确的贡献 . 对于 \(i>\sqrt n\) 的部分,就是质数贡献 \(2\)、合数贡献 \(1\),这是容易修正的 .
从而问题变为计算 \(F(n)\) . 这里的一个关键事实是,\(F(n)\) 实际上在计算满足如下条件的二元组 \((r,p)\) 的数量:
- \(1\le r,p\le n\) 且 \(p\) 是素数 .
- \(n\equiv r\pmod p\) .
因为 \(F(n)\) 实际上是在枚举一个 \(r<p\),然后通过乘 \(\lfloor\frac nr\rfloor\) 来计算所有更大的位置的贡献 .
考虑枚举 \(n-r\),则可以导出:
如果你注意到 \(2^{\omega(n)}=(\mu^2*1)(n)\),那么这个任务就是简单的了 . 可以通过 Powerful Number 筛在 \(\Theta(\sqrt n\log n)\) 甚至 \(\Theta(\sqrt n)\) 的时间复杂度完成,细节可见 2023.2.17 闲话 .
这意味着这个问题可以在 \(\Theta(\sqrt n\log\log n)\) 的时间复杂度内解决,虽然问题看起来和数素数个数一样难 .
细节部分没有仔细考虑,如果有问题请指出 .
😎
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/18020035
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ