Skip to content
phonism edited this page Sep 22, 2020 · 15 revisions

TODO

线段树

线段树是一种数据结构,主要用来解答区间查询问题,对于满足区间可加性的问题基本都可以维护,常见的维护如下。

  • 区间和
  • 区间最值和出现的次数
  • 区间gcd/lcm
  • 区间为0的个数,以及第k个0的位置
  • 查询前项和不小于某个数的第一个位置,带更新
    • 朴素做法是二分位置,然后线段树维护,复杂度O(logn*logn)
    • 另一种做法是充分利用线段树性质,因为前项和是递增的,复杂度O(logn)
  • 查询区间第一个比x大的数
    • 朴素做法二分区间右端点,然后线段树维护,复杂度O(logn*logn)
    • 类似于上面,因为max和前项和类似,都是递增的,可以丰富利用线段树性质,复杂度O(logn)
  • 查询区间最大的子序列和

题目选讲

Prepare my interview!

Clone this wiki locally