[计蒜客 41302]K Sum
一看数据范围,显然本题复杂度和\(k\)没啥关系,只可能跟\(n\)有关系,注意到\(n \leq 10^9\),考虑杜教筛。
但是第一步得先推式子。
\[f_n(k) = \sum_{l_1 = 1}^{n} \sum_{l_2 = 1}^{n} ... \sum_{l_k = 1}^{n} (\gcd(l_1,l_2...l_k))^2
\]
首先枚举gcd
\[= \sum_{l_1 = 1}^{n} \sum_{l_2 = 1}^{n} ... \sum_{l_k = 1}^{n} \sum_{d = 1}^n d^2 [\gcd(l_1,l_2...l_k) == d]
\]
然后把\(d\)提到前面
\[= \sum_{d = 1}^n d^2 \sum_{l_1 = 1}^{\lfloor \frac{n}{d} \rfloor} \sum_{l_2 = 1}^{\lfloor \frac{n}{d} \rfloor} ... \sum_{l_k = 1}^{\lfloor \frac{n}{d} \rfloor}[\gcd(l_1,l_2...l_k) == 1]
\]
然后换出\(\mu\)
\[= \sum_{d = 1}^n d^2 \sum_{l_1 = 1}^{\lfloor \frac{n}{d} \rfloor} \sum_{l_2 = 1}^{\lfloor \frac{n}{d} \rfloor} ... \sum_{l_k = 1}^{\lfloor \frac{n}{d} \rfloor} \sum_{p | gcd(l_1,l_2...l_k)} \mu(p)
\]
\[= \sum_{d = 1}^n d^2 \sum_{p=1}^{\lfloor \frac{n}{d} \rfloor} \mu(p) \sum_{l_1 = 1}^{\lfloor \frac{n}{dp} \rfloor} \sum_{l_2 = 1}^{\lfloor \frac{n}{dp} \rfloor} ... \sum_{l_k = 1}^{\lfloor \frac{n}{dp} \rfloor}
\]
\[= \sum_{d = 1}^n d^2 \sum_{p=1}^{\lfloor \frac{n}{d} \rfloor} \mu(p) \lfloor \frac{n}{dp} \rfloor^k
\]
令\(T=dp\),再交换一波求和顺序
\[= \sum_{T = 1}^n \lfloor \frac{n}{T} \rfloor^k \sum_{d|T}(\frac{T}{d})^2 \mu(d)
\]
我们注意到式子的右边只和\(T\)的取值有关,而和\(k\)无关,不妨设\(g(T) = \sum_{d|T}(\frac{T}{d})^2 \mu(d)\)
那么答案要求前缀和,就可以写成:
\[\sum_{i=2}^k f_n(k)
\]
\[= \sum_{i=2}^k \sum_{T = 1}^n \lfloor \frac{n}{T} \rfloor^k g(T)
\]
\[= \sum_{T = 1}^n g(T) \sum_{i=2}^k \lfloor \frac{n}{T} \rfloor^k
\]
右边显然是个等比数列求和,直接套公式\(O(1)\)计算,现在问题是左边\(g(T)\)的前缀和。
考虑到复杂度,只能杜教筛处理,首先按照套路式:
\[h(1)S(n) = \sum_{i=1}^{n} (h*g)(i) - \sum_{d=2}^{n} h(d) S(\lfloor \frac{n}{d} \rfloor)
\]
\[g(n)=(id^2 * \mu)(n)
\]
不难想到当\(h\)函数为\(h(n)=1\)时,可以得到比较合适的式子:
\[S(n) = \sum_{i=1}^n i^2 - \sum_{d=2}^n S(\lfloor \frac{n}{d} \rfloor)
\]
即
\[S(n) = \frac{n(n+1)(2n+1)}{6} - \sum_{d=2}^n S(\lfloor \frac{n}{d} \rfloor)
\]
杜教筛就完事了。
综上,可以\(O(n^{\frac{2}{3}})\)通过本题。