整除分块

主要是求类似\(\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题
posted @ 2024-03-30 16:22  orzkeyhacker  阅读(22)  评论(0)    收藏  举报