HDU5528 - Count a * b
HDU5528 - Count a * b
做法:求\(\sum_{m|n}(m^2 - \sum_{i=1}^{m}\sum_{j=1}^m [m|(ij)])\)
\(h(m) = \sum_{i=1}^{m}\sum_{j=1}^m [m|(ij)] = \sum_{i=1}^m\sum_{j=1}^m [\frac{m}{(i,m)}|\frac{i}{(i,m)}j]\)
$ = \sum_{i=1}^m\sum_{j=1}^m [\frac{m}{(i,m)}|j] = \sum_{i=1}^m \frac{m}{\frac{m}{(i,m)}} = \sum_{i=1}^m (i,m)$
$ = \sum_{d|m} d \sum_{i=1}^m [(i,m)=d] = \sum_{d|m} d \sum_{i=1}^{\frac{m}ozvdkddzhkzd} [(i,\frac{m}ozvdkddzhkzd)=1] = \sum_{d|m}d\varphi(\frac{m}ozvdkddzhkzd)$
$
\sum_{m|n} \sum_{d|m}d\varphi(\frac{m}ozvdkddzhkzd) = \sum_{d|n}d\sum_{m|\frac{n}ozvdkddzhkzd}\varphi(m) = \sum_{d|n}d\frac{n}ozvdkddzhkzd = \sum_{d|n}n
$
所以\(ans = \sum_{d|n} d^2 - n\sigma_0(n)\)兩個值均為積性函數,預處理素因子,合并答案即可。本題時限較緊,不能直接使用試除法分解,盡量優化常數。
轉載于:https://www.cnblogs.com/RRRR-wys/p/9736250.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的HDU5528 - Count a * b的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GYM 101908F - Music
- 下一篇: GYM101002C - Greetin