「51nod 1847」奇怪的数学题
题意
给出 \(n,k\) 求
\[\sum_{i=1}^n\sum_{j=1}^n sgcd(i,j)^k\]
其中 \(sgcd(i,j)\) 表示 \(i,j\) 的次大公约数,特殊地,\(sgcd(1,1)=0\)
对 \(2^{32}\) 取模
\(n\le 10^9, k\le 50\)
做法
令 \(f(x)\) 表示 \(x\) 的次大因数,特殊地,\(f(1)=0\)
于是
\[ \begin{align} & \sum_{i=1}^n\sum_{j=1}^n sgcd(i,j)^k \\ = & \sum_{i=1}^n\sum_{j=1}^n f(\gcd(i,j))^k \\ = & \sum_{g=1}^n f(g)^k \sum_{i=1}^{\lfloor \frac{n}{g} \rfloor}\sum_{j=1}^{\lfloor \frac{n}{g} \rfloor} [\gcd(i,j)=1] \\ = & \sum_{g=1}^n f(g)^k \left(2 \left( \sum_{i=1}^{\lfloor \frac{n}{g} \rfloor} \varphi(i) \right) - 1 \right) \end{align} \]
显然右边的部分可以Min_25筛/杜教筛处理
Min_25筛参考这里
我们需要对于每个 \(\lfloor \frac{n}{x} \rfloor\) 求出 \(\sum_{g=1}^{\lfloor \frac{n}{x} \rfloor} f(g)^k\)
显然对于 \(g\ne 1\),\(f(g)=\frac{g}{g\text{ 的最小质因子}}\),并且对于合数 \(g\),\(g\text{ 的最小质因子}\le \sqrt{g}\)
每个质数的贡献是 \(1\),这可以在Min_25筛的第一部分预处理质数时计算
事实上这里不需要第二部分,考虑对于一个 \(\lfloor \frac{n}{x} \rfloor\),\(\lfloor \frac{n}{x} \rfloor\) 以内的所有合数都恰好被筛到一次,直接在第一部分内统计答案就好了
还有一点是这里模数不是质数,在Min_25筛预处理时需要求 \(\sum_{i=1}^n i^k\),不能用插值之类的做
因为
\[ \begin{align} x^k & = \sum_{i=0}^k \begin{Bmatrix} k \\ i \end{Bmatrix} x^{\underline{i}} \\ & =\sum_{i=0}^k \begin{Bmatrix} k \\ i \end{Bmatrix} \binom{x}{i}i! \end{align} \]
其中 \(\begin{Bmatrix} n \\ k \end{Bmatrix}\) 表示第二类斯特林数,上式可以用组合意义理解(膜yx)
所以
\[ \begin{align} \sum_{x=1}^n x^k & = \sum_{x=1}^n \sum_{i=0}^k \begin{Bmatrix} k \\ i \end{Bmatrix} \binom{x}{i}i! \\ & = \sum_{i=0}^k i! \begin{Bmatrix} k \\ i \end{Bmatrix} \sum_{x=1}^n \binom{x}{i} \\ & = \sum_{i=0}^k i! \begin{Bmatrix} k \\ i \end{Bmatrix} \binom{n+1}{i+1} \\ & = \sum_{i=0}^k \begin{Bmatrix} k \\ i \end{Bmatrix} \frac{(n+1)^{\underline{i+1}}}{i+1} \end{align} \]
显然最后的下降幂中必有一项被 \(i+1\) 整除,所以可以 \(\mathcal O(k^2)\) 地计算一个 \(k\) 次幂前缀和
总复杂度 \(\mathcal O(\frac{n^{\frac{3}{4}}}{\log n} + \sqrt{n}k^2)\) 或 \(\mathcal O(\frac{n^{\frac{3}{4}}}{\log n} + \sqrt{n}k^2 + n^{\frac{2}{3}})\)
代码
1 |
|
「51nod 1847」奇怪的数学题