题目链接:

题目链接题目难度
洛谷P3372 【模板】线段树 1普及+/提高

哈喽,大家好,我们又见面了。

今天大家来讲线段树。

首先简单介绍一下线段树:

线段树,是一种二叉搜索树,它将一个区间划分成一些小的区间,每个小的区间对应线段树中的一个叶结点。

线段树常常用于数列修改与求值的问题,作者已经整理了一些常考的(如下):

首先是修改:

  1. 单点修改;
  2. 单点加、减、乘、除(向上取整,向下取整,四舍五入);
  3. 区间修改;
  4. 区间加、减、乘、除(向上取整,向下取整,四舍五入);
  5. 区间开根(向上取整,向下取整,四舍五入);
  6. 区间开方;
  7. 区间翻转;
  8. 其他(比如区间加等差数列,单点的其他操作)。

查询:就是继而

  1. 单点查询;
  2. 区间和;
  3. 区间最大值(max);
  4. 区间最小值(min);
  5. 其他。

当然,这种困难大家也行用别的方法来做,比如: