Рассмотрим двоичную матрицу n * n. Каждая ячейка этой матрицы имеет не более 4 соседей (если она существует). Мы называем две ячейки этой матрицы несовместимыми, если они являются соседями, а их значения не равны. Мы платим $b за каждую несовместимую пару. Также мы можем изменить значение ячейки с оплатой $a.
Вопрос заключается в том, чтобы найти минимальную стоимость для этой матрицы.
Я уже использовал backtracking и нашел алгоритм O(2 ^ (n * n))
. Может ли кто-нибудь помочь мне найти более эффективный алгоритм?