●BZOJ 3529 [Sdoi2014]數表
題鏈:
http://www.lydsy.com/JudgeOnline/problem.php?id=3529
題解:
莫比烏斯反演。
按題目的意思,令$f(i)$表示i的所有約數的和,就是要求:
$ANS=\sum f(gcd(i,j)),滿足1 \leq i \leq n,1 \leq j \leq m,且 f(gcd(i,j))\leq a$
首先 $f(i)$ 應該還是比較好推的,利用其為積性函數的特點,可以在線性篩時完成計算。
令$g[k]$表示$gcd(i,j)=k$的$(i,j)$的對數
$G[k]$表示$gcd(i,j)=\lambda k$的$(i,j)$的對
那麽顯然,$G[k]$為$g[k]$的倍數關系和函數,
即滿足$G[k]=\sum_{k|d} g[d]$
則由莫比烏斯反演得:
$g[k]=\sum_{k|d}\mu(\frac{d}{k})G[d]$
$\quad\quad=\sum_{k|d}\mu(\frac{d}{k})\lfloor \frac{n}{d} \rfloor \lfloor \frac{m}{d} \rfloor$
那麽現在,直接從gcd的值的角度出發,ANS可以寫成如下形式:
$ANS=\sum_{i=1}^{min(n,m)}f(i)g(i)$
$\quad\quad=\sum_{i=1}^{min(n,m)}f(i)\sum_{i|d}\mu(\frac{d}{i})\lfloor \frac{n}{d} \rfloor \lfloor \frac{m}{d} \rfloor$
然後再化一下:
$\quad\quad=\sum_{d=1}^{min(n,m)}\lfloor \frac{n}{d} \rfloor \lfloor \frac{m}{d} \rfloor\sum_{i|d}f(i)\mu(\frac{d}{i})$
令 $w(d)=\sum_{i|d}f(i)\mu(\frac{d}{i})$
那麽$ANS=\sum_{d=1}^{min(n,m)}\lfloor \frac{n}{d} \rfloor \lfloor \frac{m}{d} \rfloor w(d)$
●BZOJ 3529 [Sdoi2014]數表