何时使用分段树以及何时使用BIT

时间:2012-08-03 04:45:31

标签: algorithm data-structures

我没有场景。但对于我们必须

的一般情况
  1. 更新范围(例如清除某些范围内的所有值i-j)
  2. 查询范围内的某些值。 (例如RMQ)
  3. 对单个元素(第1点的特定情况)进行更新
  4. 搜索某个范围内的特定值(同样是第2点的特定情况)
  5. 所有这些操作都可以使用BIT或分段树执行。但 3 除外, 2 分段树的某些特定情况更有效。 (Infact BIT对RMQ等查询没有任何帮助)

    BIT最明显的优势是它更容易编码。

1 个答案:

答案 0 :(得分:0)

(以下是我花了很长时间在分段树和BIT问题上花了几个星期的想法,所以我很新了)

BIT更容易编码,但有些情况下您可以轻松地查看并与段树相关联。 BIT提供的另一个优点是占用较小的空间(O(n)空间)。

从我的角度来看,与BIT相比,分段树更容易理解,因此您可以轻松应用并将其与特定情况联系起来。在段树中,延迟传播也更简单易懂。因此,Segment树可以让您有效地更新范围。