2023.7.27 闲话
joke3579 整了个神题:
话说 Rolling_star 最近想整个具体数学改编题给 OI 用来着 .
以前写的一个逆天 ABC D 题,当时是 OEIS 直接贺的答案,现在补一个证明 .
给定正整数 \(n\),计算满足如下条件的二元组 \((i,j)\) 个数:
- \(i,j\) 都是不大于 \(n\) 的正整数 .
- \(i\cdot j\) 是完全平方数 .
令 \(f(n)\) 是 \(n\) 的最大平方因子,根据之前的讨论可以知道 \(i\cdot j\) 是完全平方数当且仅当 \(\frac i{f(i)}=\frac j{f(j)}\) .
对于一个 \(i\),给 \(i\) 乘或除一个平方因子就可以得到所有合法的 \(j\),考虑只算 \(j\le i\) 的贡献,那么可以得到答案就是 \(\sum\limits_{i=1}^n(\sqrt{f(i)}-1)\) .
然而并没有什么用,引入结论:
现在只需要证明左边也是那个玩意就行了 .
这个有点简单:
好好好,那么就欢乐地证完了所有结论,现在可以 \(\Theta(\sqrt n)\) 算了 .
因为长得很像 \(\mu^2\) 前缀和,一些展望:
- 求块筛:杜教筛或者阈值分治,\(\Theta(n^{2/3})\) .
- 多测:\(\Theta(\sqrt n+qn^{1/3})\) 整除分块 .
欧拉函数有点阴间,直觉上来看 Powerful Number 筛应该做不到更快了 .
不过用这个方法可以整一些奇怪的东西:
Sieve 2
有一个积性函数 \(f\),给定正整数 \(n\),求:
\[\sum_{i=1}^nf(i)\cdot s(i) \]其中 \(s(n)\) 是最大的满足 \(d^2\mid n\) 的正整数 \(d\) .
直接算,\(\Theta(\sqrt n)\) . 不过前面都没有用到 \(f\) 的积性,所以对于任意 \(f\),也可以 \(\Theta(\sqrt n\log\log n)\) 做 .
再展望有点无聊了:
- 求块筛:杜教筛(可能比较难)或者阈值分治,\(\Theta(n^{2/3})\) .
- 多测:\(\Theta(\sqrt n+qn^{1/3})\) 整除分块 .
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/17582140.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ