Поиск ближайшего соседа с добавочным весом

Revision ru1, by xagofes, 2019-02-24 00:44:31

Есть квадратная сетка размера N * N, в каждой клетке которой записано магическое целое положительное число. Дистанция между двумя клетками равна сумме магических чисел в этих клетках и Евклидову расстоянию между этими клетками. Среди всех этих клеток R клеток покрашены в красный цвет, а G клеток покрашены в зеленый цвет. Для каждой зеленой клетки нужно найти такую красную, что не будет другой красной клетки дистанция до которой меньше.

512 <= N <= 4096 1 <= R + G <= N * N

Можно ли решить эту задачу быстрее чем O(G * R)? Если бы не было магического числа в клетках, то это была бы задача по [поиску ближайшего соседа] https://en.wikipedia.org/wiki/Nearest_neighbor_search).

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en4 English xagofes 2019-02-24 01:00:07 2
en3 English xagofes 2019-02-24 00:56:48 0 (published)
ru4 Russian xagofes 2019-02-24 00:56:21 0 (опубликовано)
ru3 Russian xagofes 2019-02-24 00:56:05 2 Мелкая правка: ' <= 4096\n1 <= R +' -> ' <= 4096\n\n1 <= R +'
en2 English xagofes 2019-02-24 00:55:48 2 Tiny change: ' <= 4096\n1 <= R +' -> ' <= 4096\n\n1 <= R +'
en1 English xagofes 2019-02-24 00:55:08 715 Initial revision for English translation (saved to drafts)
ru2 Russian xagofes 2019-02-24 00:45:07 2 Мелкая правка: 'го соседа] https://en' -> 'го соседа](https://en'
ru1 Russian xagofes 2019-02-24 00:44:31 734 Первая редакция (сохранено в черновиках)