公式渲染压力测试
P8670 [蓝桥杯 2018 国 B] 矩阵求和 题解
前置芝士 / 题目
- \(\gcd\) 的性质
- 欧拉函数 \(\varphi\) 及其性质
前置题目:P2398 GCD SUM。
思路
简要题意:求
$$
\sum_{i=1}^{n} \sum_{j=1}^{n} \gcd(i,j)^2
$$
首先枚举暴力,肯定 T 飞,期望得分 30pts。
1 | // #include <algorithm> |
不会用莫比乌斯反演,乱搞一下。
类似的带 \(\gcd\) 的结论:
$$
\begin{aligned}
\sum_{i=1}^{n} \sum_{j=1}^{n} f\left(\gcd(i,j)\right)
&=\sum_{d=1}^{n} d \sum_{i=1}^{n} \sum_{j=1}^{n} [f \left( \gcd(i, j) \right)=d] \\
&=\sum_{d=1}^{n} f\left(d\right) \sum_{i=1}^{n} \sum_{j=1}^{n} [\gcd(i, j)=d] \\
&=\sum_{d=1}^{n} f\left(d\right) \sum_{i=1}^{\lfloor \frac{n}{d} \rfloor} \sum_{j=1}^{\lfloor \frac{n}{d} \rfloor} [\gcd(i, j)=1]
\end{aligned}
$$
\([\gcd(i,j)=1]\) 不就是两者互质么,那么来个欧拉函数解决问题。
参考 P2158 [SDOI2008] 仪仗队,排除掉重复计算。
$$
\begin{aligned}
\sum_{d=1}^{n} f\left(d\right) \sum_{i=1}^{\lfloor \frac{n}{d} \rfloor} \sum_{j=1}^{\lfloor \frac{n}{d} \rfloor} [\gcd(i, j)=1]
&=\sum_{d=1}^{n} f\left(d\right) \left( 2 \times \sum_{i=1}^{\lfloor \frac{n}{d} \rfloor} \varphi\left(n\right)-1 \right)
\end{aligned}
$$
有了这个结论就可以愉快的刷多倍经验了。
贴个代码
1 | inline void Euler(i64 n) |