🌳 线段树 · 区间更新 & 懒标记 固定数据 [1, 3, 5, 7, 9, 11, 13, 15]

▶ 📖 懒标记(Lazy Tag)原理

懒标记 用于区间更新,当某个节点区间完全在更新范围内时,我们不更新其子节点,而是记录一个“懒标记”到该节点,表示该节点的所有子节点都需要增加某个值。这样将区间更新的复杂度降到 O(log n)。

  • 区间更新: 若节点区间完全覆盖,则更新当前节点的 sum 和 lazy,返回。
  • 懒标记下推(pushDown): 当需要访问子节点时(如部分覆盖的更新或查询),先将当前节点的 lazy 值传递给子节点,并清空当前节点的 lazy。

📌 核心操作

update_range(l, r, val): 递归更新区间 [l,r] 加 val。

query_range(l, r): 递归查询区间 [l,r] 的和。

在 update 和 query 过程中,若当前节点有 lazy 标记,必须先 pushDown 到子节点,保证数据正确。

时间复杂度:Update/Query O(log n)

当前操作节点 更新路径 / 命中 被更新的叶子 查询完全命中 查询部分重叠 下推懒标记

📊 线段树结构 (区间 : sum | lazy)

📝 当前步骤 0 / 0
点击「建树」或「完整演示」开始

📋 操作历史

🟦 当前步骤  |  🔵 建树  |  🟡 更新  |  🟢 查询  |  🩷 下推
✅ 操作完成!