我遇到过一些此类问题。假设我们有一个元素数组A
,其中大约是百万。我们得到了 form 的查询。在每个查询中,我们必须对元素执行一些操作。n
n
1
'p q'
A[p]
A[q]
- 这个操作是一些普通的操作之类
XOR
的。用于对 A(从索引 p 到 q)中的每个数字与给定数字 m 进行异或运算。对于前-A[p]^m,A[p+1]^m..A[q]^m
如果我们有数千个类型为“p q”的查询,那么我们会对重叠范围进行重复计算(例如 - p1<p2<q1<q2
)。如果有空间/时间的权衡,我宁愿更快地完成我的工作,即使它需要更多的空间。所以,我专注于时间而不是空间。
我的问题是 -是否有任何数据结构可以有效地处理这些类型的查询(具有一些在进一步查询中重复的范围)。我能想到的就是做一些预处理并将东西保存在数据结构中。然后在我们收到进一步的查询时进行更新和处理。
有人可以建议一些有助于处理与某些范围有关的查询的数据结构(特别是当范围进一步广泛重复时)?
- 这是我需要数据结构的原始问题
- 异或运算的最大值