【发布时间】:2016-05-26 21:32:40
【问题描述】:
给定一个包含 n 个元素的整数数组 A 和 m 个查询,每个查询都包含一个整数 x,我必须回答数组中小于 x 的元素数。 0
示例:
A[]={105,2,9,3,8,5,7,7}
查询
6
8
104
回答
3
5
7
解释:
对于 query1 元素是={2,3,5}
对于 query2 元素是={2,3,5,7,7}
对于 query3 元素是={2,9,3,8,5,7,7}
问题:
如何使用分段树来解决这个问题?(我已经构建了分段树以在一个范围内查找最大值、最小值和总和,但我的大脑一片空白,如何为此构建分段树)。请举例说明
注意:我已经知道使用排序和二进制搜索的 nlogn 解决方案(针对每个查询)。我想了解如何利用段树来解决这个问题。
谢谢
【问题讨论】:
标签: c++ algorithm data-structures segment-tree