codeforces gym102471 C Dirichlet k-th root
题目:
有g=fk,其中这里的乘指的是狄利克雷乘积。
现在,已知g求f(f不一定为积性函数)
题解:
有g(n)=fk(n)
对于这种公式,首先我们应该想到两种方法,
一种是gk1(n)=f(n),对于这种方法只要找到合适的数进行类似快速幂的卷积即可
另一种则是从公式推导,不过不变的肯定是用类似快速幂的思路将k优化到log(k)。
公式推导如下:
设$$F^k(n,m)=\sum_{a_1a_2…*a_k=n,a_i<m}f(a1)f(a2)…*f(ak)$$
g(n)=fk(n)=k∗f(n)+Fk(n,n)
k∗f(n)=g(n)−Fk(n,n)
因此我们只要知道了Fk(n,n)就能把f(n)求出来了。
F2k(n)=d∣n,if(k==1)1<d<n∑