整数分块
什么是整数分块
整数分块(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
循环次数为 级别。

京公网安备 11010502036488号