线段树
线段树是用树来储存数据的一种方法,将对数据的处理在树上实现,一般使用二叉树来实现,由于线段树的结构特性,可以缩短对数据的操作时长,使得程序在较短的时间内实现,满足题目的要求。它将一段区间划分为若干单位区间 ,每一个节点都储存着一个区间。支持区间求和,区间最大值,区间修改,单点修改等操作。线段树有分治思想。
线段树的每一个节点都储存着一段区间的信息,其中叶子节点 L = R。它的大致思想是:将一段大区间平均地划分成 2 个小区间,每个小区间都再平均分成 2个更小区间,直到每一个区间的 L==R 。通过对这些区间进行修改、查询,来实现对大区间的修改、查询。这样,每一次修改、查询的时间复杂度只为 O ( log2 n ) 。