Processing math: 100%

最高科技——疯狂的前缀和

Nk=1fk

显然这玩意是可以O(N)的,看起来也不能再优化了。

但是在这个宇宙中确实还存在着更快的算法……

gn=d|nfd,Fn=nk=1fk

因为Nk=1gk=Nk=1fkNk=Nk=1FNk

整理得到FN=Nk=1gkNk=2FNk

如果能够在 O(N)的时间内求出Nk=1gk,那么可以在O(N34)的时间内计算出F(N)

Nk=1gk对于某些特殊的gk能做的很快,例如Nk=1d|kμ(d)=1Nk=1d|kϕ(d)=Nk=1k=N(N+1)2

如果gn能够很快的计算,那么可以对于nN23线性暴力计算Fn,否则递归计算,可以做到O(N23)

posted @   zhuohan123  阅读(3335)  评论(2编辑  收藏  举报
点击右上角即可分享
微信分享提示