【hdu5382】GCD?LCM! 题解

题目大意

  令 $f(n)=\sum_{i=1}^n\sum_{j=1}^n~[~gcd(i,j)+lcm(i,j)≥n~]$,求 $S(n)=\sum_{i=1}^nf(i)$。
  多组询问,$T \le 10^5,n \le 10^6$。

第一反应

  拿到式子大多数同学开始反演了。。。
  $T$ 这么大,还得能预处理。。。

  直接刚反演的话,我反正是刚不出来,题解也不是这么做的。

题解

  考虑递推!!
  看 $f(n-1)$ 如何推到 $f(n)$。我们发现,就是少了 $i=n$ 或 $j=n$ 的情况,然后多了 $gcd+lcm=n-1$ 的情况。当 $i=n$ 或 $j=n$ 时,$lcm(i,j)≥n$,所以一定可以。因此递推式就是:

  后面那部分就可以反演了。

  其中 $\lambda(m)$ 表示 $m$ 的质因数种类数,即 $m=p_1^{c_1}p_2^{c_2}…p_{\lambda(m)}^{c_{\lambda(m)}}$

  到这一步,全部都可以预处理了。