这篇题解中写:
整除分段并不会用到所用的 f(),g()f(),g()f(),g() 值,所以我们边做分段边更新就好了,这是 O(n)O(\sqrt{n})O(n) 的。
个人认为,对于一个特定的 zzz,不止会用到 O(n)O(\sqrt n)O(n) 个 g()g()g()。
因为 g(n,z)=g(n,z/x)+g(⌊nx⌋,z)g(n,z)=g(n,z/x)+g(\left\lfloor\dfrac nx\right\rfloor,z)g(n,z)=g(n,z/x)+g(⌊xn⌋,z) 中,第二项仍是 zzz 的函数,而非 z/xz/xz/x 的函数;于是对于同一个 zzz,需要求一个新的函数值。
但这种写法确实是对的,求解答。