2023.7.27 闲话

joke3579 整了个神题:

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


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

ABC254D Together Square

给定正整数 n,计算满足如下条件的二元组 (i,j) 个数:

  • i,j 都是不大于 n 的正整数 .
  • ij 是完全平方数 .

f(n)n 的最大平方因子,根据之前的讨论可以知道 ij 是完全平方数当且仅当 if(i)=jf(j) .

对于一个 i,给 i 乘或除一个平方因子就可以得到所有合法的 j,考虑只算 ji 的贡献,那么可以得到答案就是 i=1n(f(i)1) .

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

i=1nφ(i)ni2n=i,j,k[1,n][ij=k2]

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

这个有点简单:

LHS=i=1nd2iφ(d)n=i=1ndf(i)φ(d)n=i=1n(f(i)1)=RHS

好好好,那么就欢乐地证完了所有结论,现在可以 Θ(n) 算了 .

因为长得很像 μ2 前缀和,一些展望:

  • 求块筛:杜教筛或者阈值分治,Θ(n2/3) .
  • 多测:Θ(n+qn1/3) 整除分块 .

欧拉函数有点阴间,直觉上来看 Powerful Number 筛应该做不到更快了 .

不过用这个方法可以整一些奇怪的东西:

Sieve 2

有一个积性函数 f,给定正整数 n,求:

i=1nf(i)s(i)

其中 s(n) 是最大的满足 d2n 的正整数 d .

i=1nfs(i)=i=1nds(i)(fμ)(d)=i=1nd2i(fμ)(d)=i=1n(fμ)(i)ni2

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

再展望有点无聊了:

  • 求块筛:杜教筛(可能比较难)或者阈值分治,Θ(n2/3) .
  • 多测:Θ(n+qn1/3) 整除分块 .
posted @   yspm  阅读(100)  评论(5编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
😅​
点击右上角即可分享
微信分享提示