整数分块

什么是整数分块

整数分块(Integer Chunking / Block Decomposition)是一种数论技巧,用于将连续区间分割成若干块,使得在求和、计数等场景下降低计算复杂度。

常见形式:将 相同的 合并成块,时间复杂度从 优化到

核心思路

对于任意正整数 ,序列 中,相同值出现的 是一个连续区间。

,则该值不变的右端点为:

因此 区间内的所有 都满足 ,可以一次性处理。

应用场景

  • 求解 (数论分块求和)
  • 数论分块优化 DP
  • 区间查询分块

典型代码结构

i = 1
while i <= n:
    val = n // i
    next_i = n // val + 1   # r = floor(n / val)
    # 处理 [i, next_i - 1] 区间,值均为 val
    i = next_i

循环次数为 级别。