很简单:1. 存储一组特定节点所涵盖的数字范围的排序数组(初始化需要 O(n * log n) 的时间和空间)。2. 要回答查询,将查询段分解为 O(log n) 个节点(与标准 min/max/sum 段树相同的方式),并在每个节点中运行二分查找以找到小于 x 的元素数量。每次查询需要 O(log^2 n) 的时间。您也可以使用分数级联实现 O(log n),但这不是必需的。