整除分块
主要是求类似\(\sum_{i = 1}^n\)\(\lfloor {\frac{n}{i}} \rfloor\)的问题
- 性质一:分块的块数$\le \left \lfloor 2\sqrt{n} \right \rfloor $
当\(i\le \left \lfloor \sqrt{n} \right \rfloor\)时,\(\left \lfloor\frac{n}{i}\right \rfloor\) 有 \(\left \lfloor\sqrt{n} \right \rfloor\) 种取值。
当\(i\ge \left \lfloor \sqrt{n} \right \rfloor\)时,\(\left \lfloor\frac{n}{i}\right \rfloor\) 至多有 \(\left \lfloor\sqrt{n} \right \rfloor\) 种取值。 - 性质二:i所在的块的右端点为\(\left \lfloor\cfrac{n}{\left \lfloor\cfrac{n}{i}\right \rfloor}\right \rfloor\)
i所在的块的值\(k = \left\lfloor\frac{n}{i}\right \rfloor\),则\(k\le\frac{n}{i}\),则\(\left \lfloor\frac{n}{k}\right \rfloor\ge \left \lfloor\cfrac{n}{\left \lfloor\cfrac{n}{i}\right \rfloor}\right \rfloor = \left \lfloor i \right \rfloor = i\)
所以\(i_{max} = \left \lfloor\frac{n}{k}\right \rfloor = \left \lfloor\cfrac{n}{\left \lfloor\cfrac{n}{i}\right \rfloor}\right \rfloor\)代码实现的时候右端点r = n/(n/l) - 练习题:
洛谷P2261
18th zjcpc f题

浙公网安备 33010602011771号