【数据结构2-2】线段树

如何快速求出一个序列的区间和呢?可以使用前缀和。如何快速求出一个序列的最值呢?可以使用 ST 表。这两种数据结构在建立的时候颇费功夫,但使用的时候效率很高。如果再增加一个需求:时不时的修改序列的值,那么这两种数据结构就无法高效完成了。不过可以使用线段树来解决这类问题。

在基础篇中,我们已经学习了二叉树的有关概念。而线段树是一种特殊的二叉树,它可以将一个线性的序列组织成一个树状的结构,从而可以在对数的时间复杂度下访问序列上的任意一个区间并进行维护。在本章中,将学习线段树的构建方法和一些简单的应用。

该题单内容将继续改进。

对应进阶篇第 6 章。


  1. P3372 - 【模板】线段树 1
  2. P3870 - [TJOI2009] 开关
  3. P1438 - 无聊的数列
  4. P1253 - 扶苏的问题
  5. P3373 - 【模板】线段树 2
  6. P4513 - 小白逛公园
  7. P1908 - 逆序对
  8. P1816 - 忠诚
  9. P1471 - 方差
  10. P6492 - [COCI 2010/2011 #6] STEP
  11. P1637 - 三元上升子序列
  12. P1558 - 色板游戏
  13. P5522 - [yLOI2019] 棠梨煎雪
  14. P4145 - 上帝造题的七分钟 2 / 花神游历各国
  15. P2572 - [SCOI2010] 序列操作
  16. CF19D - Points