On Updating and Querying Submatrices
In this paper, we study the d-dimensional update-query problem. We provide lower bounds on update and query running times, assuming a long-standing conjecture on min-plus matrix multiplication, as well as algorithms that are close to the lower bounds. Given a d-dimensional matrix, an update changes each element in a given submatrix from x to x▽ v, where v is a given constant. A query returns the △ of all elements in a given submatrix. We study the cases where ▽ and △ are both commutative and associative binary operators. When d = 1, updates and queries can be performed in O(log N) worst-case time for many (▽,△) by using a segment tree with lazy propagation. However, when d≥ 2, similar techniques usually cannot be generalized. We show that if min-plus matrix multiplication cannot be computed in O(N^3-ε) time for any ε>0 (which is widely believed to be the case), then for (▽,△)=(+,min), either updates or queries cannot both run in O(N^1-ε) time for any constant ε>0, or preprocessing cannot run in polynomial time. Finally, we show a special case where lazy propagation can be generalized for d≥ 2 and where updates and queries can run in O(log^d N) worst-case time. We present an algorithm that meets this running time and is simpler than similar algorithms of previous works.
READ FULL TEXT