BZOJ复活了呢QAQ。
题目描述
求映射$f(x,k) \to \sum_{i=1}^x k \;mod \;i$的值。
输入输出格式
输入格式
两个整数,$n,k$。
输出格式
$f(n,k)$
INPUT & OUTPUT’s examples
Input’s eg #1
1 | 5 3 |
Output’s eg #1
1 | 7 |
说明
对于$100 \%$的数据,$1 \leq n,k \leq 10^9$
分析
为了更好地理解题意,我把题面魔改了一下(雾
我们来看$f(x,k)$这个函数:
$$f(x,k) = \sum_{i=1}^x k \; mod \; i$$
因为,
$$a \;mod \;b = a - \lfloor \frac{a}{b} \rfloor \times b$$
所以,原式可以化简,得:
$$f(x,k) = \sum_{i=1}^x k - \lfloor \frac{k}{i} \rfloor \times i$$
继续化简:
$$f(x,k) = x \times k - \sum_{i=1}^x \lfloor \frac{k}{i} \rfloor \times i$$
我们知道$\lfloor \frac{k}{i} \rfloor$至多有$\sqrt{k}$种取值。
那么我们对$\lfloor \frac{k}{i} \rfloor$连续的一段进行计算即可。
代码
1 | /* Headers */ |