【问题标题】:Number of elements less than 'x' in a range (l, r) both inclusive范围 (l, r) 中小于 'x' 的元素数
【发布时间】:2020-11-07 23:09:14
【问题描述】:

给定一个整数数组,并且存在单一类型的查询。

查询 - (L, R, X)

在 (L, R) 范围内找到小于“X”的元素。

PS:所有查询都是事先提供的,即我们需要设计一个离线算法来回答所有查询。

【问题讨论】:

    标签: arrays range-query rmq


    【解决方案1】:

    这可以在段树和向量的帮助下完成。在分段树的每个节点处维护一个向量。在构建树时,在段树的每个节点处保持向量中的排序顺序。

    应用二分搜索在处理查询的段树的每个节点处查找小于“X”的元素数。

    int count = upper_bound(v.begin(), v.end(), X) - v.begin();
    

    Is it possible to query number of distinct integers in a range in O(lg N)?

    上面的帖子也很好地描述了这个想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-20
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 2022-01-06
      • 2019-06-14
      • 1970-01-01
      • 2021-11-27
      相关资源
      最近更新 更多