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

Автор xagofes, история, 5 лет назад, По-русски

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

512 <= N <= 4096

1 <= R + G <= N * N

Можно ли решить эту задачу быстрее чем O(G * R)? Если бы не было магического числа в клетках, то это была бы задача по поиску ближайшего соседа.

Полный текст и комментарии »

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

Автор xagofes, история, 6 лет назад, По-русски

Есть квадратная сетка размером до 4096x4096, некоторые клетки которой закрашены. Далее подается множество отрезков, заданных двумя точками. Необходимо узнать для каждого отрезка пересекает ли он хотя бы одну закрашенную клетку.

UPD2: Касание клетки не считается ее пересечением.

Ограничение на предпосчет 10 секунд.

Ограничение на память 2Гб.

UPD1: обновил решение

Мое решение

Полный текст и комментарии »

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