1. Главная
  2. Библиотека
  3. Искусство
  4. Ваня большой фанат шахмат, он перепробовал уже кучу вар...
Разбор задачи

Ваня большой фанат шахмат, он перепробовал уже кучу вариаций игры. И вот, когда казалось, что Ваня уже прошел шахматы, он придумал новый вариант, который он гордо называет Шахматы 2.0! В данную игру можно играть даже одному, в ней есть всего два вида

  • Предмет: Искусство
  • Автор: Кэмп
  • #Теория искусства
  • #Проектирование в искусстве
Ваня большой фанат шахмат, он перепробовал уже кучу вариаций игры. И вот, когда казалось, что Ваня уже прошел шахматы, он придумал новый вариант, который он гордо называет Шахматы 2.0! В данную игру можно играть даже одному, в ней есть всего два вида

Условие:

Ваня большой фанат шахмат, он перепробовал уже кучу вариаций игры. И вот, когда казалось, что Ваня уже прошел шахматы, он придумал новый вариант, который он гордо называет Шахматы 2.0! В данную игру можно играть даже одному, в ней есть всего два вида хода: 1) Добавить Ферзя в любую свободную клетку на доске 2) Спросить про любую клетку, может ли хотя бы один Ферзь добраться до нее не более чем за один ход.

Напомним вам, что, несмотря на внушительные размеры доски, Ферзь все еще может перемещаться на любое количество клеток по вертикали, горизонтали и диагонали.

Решение:

Для решения этой задачи нам необходимо эффективно отслеживать положение ферзей на доске размером N×NN \times N и быстро проверять, бьется ли заданная клетка (x,y)(x, y) хотя бы одним из них.

Анализ условий

Ферзь бьет клетку (x,y)(x, y), если он находится:

  1. В той же строке: его координата xi=xx_i = x.
  2. В том же столбце: его координата yi=yy_i = y.
  3. На той же главной диагонали: xiyi=xyx_i - y_i = x - y.
  4. На той же побочной диагонали: xi+yi=x+yx_i + y_i = x + y.

Так как NN может достигать 10910^9, мы не можем использовать двумерный массив. Однако количество ходов qq ограничено 2×1052 \times 10^5. Это значит...

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

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

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

Какой из перечисленных подходов является наиболее эффективным для отслеживания положения ферзей и проверки атакуемых ими клеток на шахматной доске размером $N \times N$, где $N$ может быть очень большим ($10^9$), но количество ферзей $q$ ограничено ($2 \times 10^5$)?

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

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

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

Топ 3 ошибок

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

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