25.倍增与稀疏表
倍增与稀疏表(ST表)
倍增思想的核心在于通过预处理每个状态的跳跃步长(如2的幂次),将线性时间的操作优化为对数时间。其关键在于构建一个跳跃表,每个位置存储跳跃不同\(2^k\)步后的结果。对于多次跳跃问题,将总步数分解为若干2的幂次之和,逐次跳跃即可高效求解。
倍增思想的核心在于通过预处理每个状态的跳跃步长(如2的幂次),将线性时间的操作优化为对数时间。其关键在于构建一个跳跃表,每个位置存储跳跃不同\(2^k\)步后的结果。对于多次跳跃问题,将总步数分解为若干2的幂次之和,逐次跳跃即可高效求解。
字面意思,把数据分成一块一块去处理。
比如数据存在一段一段连续的相同值时,把相同的值看作一个的"块",从而快速跳过。
比如把要经常批量处理的数据分成一个一个的块,在批量处理时,整个被覆盖的块做整体处理,没整个覆盖的再挨个处理。
在线性表章节已了解二分查找的基本原理,当一个问题的答案具有单调性时——即随着答案的增大或减小,判定条件的结果也呈现单调变化,比如答案越大条件越容易满足,或者答案越小条件越容易满足,可以通过二分查找,在过程中根据判定条件是否满足来调整二分的方向逼近解的过程。