Блог пользователя pranet

Автор pranet, история, 8 лет назад, По-английски

I was trying to implement the following functions on a N * N grid in O(log^2(N)) time:

  1. Update: Add v to all grid points in specified rectangle. (v, rectangle are specified in this update)

  2. Query: Print maximum value in specified rectangle. (rectangle is specified in this query)

I tried implementing a 2-D segment tree, but got stuck with the range updates part (lazy propagation in 2-D dimensions is not pretty)

Is it even possible to do so? (anything below O(N) per operation is fine).

  • Проголосовать: нравится
  • +6
  • Проголосовать: не нравится

»
8 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
»
8 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

P.S. lazy propagation does not work in 2D as far as I know

»
8 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Old thread about this problem. It seems to be really hard (or impossible?) to do this in time per query.