我正在尝试解决以下问题:
给定一个具有整数权重(任意顺序)的项目数组,我们可以有 2 种可能的操作:
查询:输出权重为 k 的项目数,范围为 x 到 y。
更新:将某项索引处的权重更改为 v。
例子:
给定数组:[1,2,3,2,5,6,7,3]
如果我们从索引 1 到 3 中查询权重为 2 的项目数,那么答案将是 2。
如果我们将索引 2 处的元素修改为权重为 2,那么我们再次进行相同的查询,答案将是 3。
这当然是一个段树问题(使用点更新)。但是,我在这里遇到了一个问题——每个段只能保存 1 个索引的答案。因此,似乎我必须在我的段树中使用向量。但这会使事情变得过于复杂。此外,我也不知道该怎么做。
有人能建议我更好的解决方案吗?