1. Главная
  2. Библиотека
  3. Высшая математика
  4. Есть прямоугольная шахматная доска n × m. На ней динами...
Разбор задачи

Есть прямоугольная шахматная доска n × m. На ней динамически появляются и исчезают слоны. Нужно отвечать на запросы трёх типов: поставить слона в (x, y); убрать слона из (x, y); для текущего множества слонов выдать минимальное число ходов, за которое хоть

  • Предмет: Высшая математика
  • Автор: Кэмп
  • #Дискретная математика
  • #Теория графов
Есть прямоугольная шахматная доска n × m. На ней динамически появляются и исчезают слоны. Нужно отвечать на запросы трёх типов: поставить слона в (x, y); убрать слона из (x, y); для текущего множества слонов выдать минимальное число ходов, за которое хоть

Условие:

Есть прямоугольная шахматная доска n × m. На ней динамически появляются и исчезают слоны. Нужно отвечать на запросы трёх типов:
1. поставить слона в (x, y);
2. убрать слона из (x, y);
3. для текущего множества слонов выдать минимальное число ходов, за которое хоть один слон сможет попасть в клетку (x, y):
• 0, если слон уже стоит в цели;
• 1, если цель на одной диагонали со слоном;
• 2, если можно дойти за два хода (через промежуточную клетку);
• -1, если недостижимо.
Важно: блокировок нет (другие слоны не мешают движению — это не шахматная партия, а чистая геометрия перемещений).
Ограничения большие: n, m ≤ 10^9, q ≤ 2e5, поэтому решение должно работать за ~O(log q) на запрос и не хранить всю доску.

Решение:

Нам нужно обрабатывать три типа запросов на шахматной доске, где координаты могут достигать 10^9, поэтому нельзя хранить всю доску. Основная идея состоит в том, чтобы хранить только информацию о тех клетках, где есть слоны. При этом важно быстро отвечать на запрос «минимальное число ходов, за которое хоть один слон может попасть в заданную клетку (x, y)». При этом слон ходит по диагоналям, то есть он двигается так, что разность координат (или сумма) остаётся постоянной.

Чтобы решить задачу, предлагается следующий алгоритм:

  1. Будем хранить динамически следующие стр...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какой из параметров слона является ключевым для определения цвета клетки, на которой он находится, и, следовательно, для возможности перемещения между клетками?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет