def solve(arr, queries):
n = len(arr)
# Build prefix XOR
prefix = [0] * (n + 1)
for i in range(n):
prefix[i + 1] = prefix[i] ^ arr[i]
results = []
for l, r in queries:
# XOR of [l, r] = prefix[r+1] ^ prefix[l]
results.append(prefix[r + 1] ^ prefix[l])
return results
Time: . This is faster than any sparse table approach.
Lesson: sparse tables are powerful for idempotent operations, but simpler techniques might be better for specific operations like XOR.