Алгоритм - минимальные свопы для настройки матрицы - PullRequest
0 голосов
/ 09 мая 2020

Я работаю над алгоритмом для расчета минимальных свопов для корректировки матрицы в соответствии с конкретными требованиями c. Дана матрица M x N со всеми элементами либо 0, либо 1. Теперь, поменяв местами два элемента несколько раз, мы хотим, чтобы матрица удовлетворяла требованию, чтобы не было элементов «1» рядом друг с другом. Другими словами, если элемент в (m, n) равен 1, то элемент в (m-1, n), (m, n-1), (m + 1, n) и (m, n + 1) должен все равны 0.

Теперь нам нужен алгоритм для вычисления минимальных свопов для настройки матрицы.

Например, когда исходная матрица выглядит как показано ниже:

1010
0001
0111
0010
0000

Результат должен быть 2 с возможной скорректированной матрицей, как показано ниже:

1010
0001
0100
0010
0101

Я борюсь с этой проблемой в течение нескольких дней и не знаю, с чего начать. Кто-нибудь может поделиться какой-нибудь хорошей идеей или указанием на эту проблему? Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...