2023.7.27 闲话

joke3579 整了个神题:

话说 Rolling_star 最近想整个具体数学改编题给 OI 用来着 .


以前写的一个逆天 ABC D 题,当时是 OEIS 直接贺的答案,现在补一个证明 .

ABC254D Together Square

给定正整数 \(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)\) .

然而并没有什么用,引入结论:

\[\sum_{i=1}^{\lfloor\sqrt n\rfloor}\varphi(i)\left\lfloor\dfrac n{i^2}\right\rfloor-n=\sum_{i,j,k\in[1,n]}[ij=k^2] \]

现在只需要证明左边也是那个玩意就行了 .

这个有点简单:

\[\begin{aligned}\mathrm{LHS}&=\sum_{i=1}^n\sum_{d^2\mid i}\varphi(d)-n\\&=\sum_{i=1}^n\sum_{d\mid\sqrt{f(i)}}\varphi(d)-n\\&=\sum_{i=1}^n(\sqrt{f(i)}-1)=\mathrm{RHS}\end{aligned} \]

好好好,那么就欢乐地证完了所有结论,现在可以 \(\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\) .

\[\begin{aligned}\sum_{i=1}^nf\cdot s(i)&=\sum_{i=1}^n\sum_{d\mid s(i)}(f*\mu)(d)\\&=\sum_{i=1}^n\sum_{d^2\mid i}(f*\mu)(d)\\&=\sum_{i=1}^{\lfloor\sqrt n\rfloor}(f*\mu)(i)\left\lfloor\dfrac n{i^2}\right\rfloor\end{aligned} \]

直接算,\(\Theta(\sqrt n)\) . 不过前面都没有用到 \(f\) 的积性,所以对于任意 \(f\),也可以 \(\Theta(\sqrt n\log\log n)\) 做 .

再展望有点无聊了:

  • 求块筛:杜教筛(可能比较难)或者阈值分治,\(\Theta(n^{2/3})\) .
  • 多测:\(\Theta(\sqrt n+qn^{1/3})\) 整除分块 .
posted @ 2023-07-27 11:30  Jijidawang  阅读(99)  评论(5编辑  收藏  举报
😅​