1. 程式人生 > >●BZOJ 3529 [Sdoi2014]數表

●BZOJ 3529 [Sdoi2014]數表

geo strong blank www. target zoj 完成 sdoi2014 href

題鏈:

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]=\lfloor \frac{n}{k} \rfloor \lfloor \frac{m}{k} \rfloor$

那麽顯然,$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]數表