В этот более ранний вопрос ОП задал следующую проблему:
Для прямоугольной сетки, где некоторые квадраты пусты, а некоторые заполнены, какое наибольшее количество 2x1 домино, которое может быть помещено в мир, так что никакие два домино не перекрываются, и ни одно домино не наполнится квадратом?
Ответ (довольно красивый!) на эту проблему признал, что это эквивалентно поиску максимального двухпартийного соответствия в специально построенном графе. На этом графике каждый пустой квадрат имеет node, который связан с каждым из его соседей ребер. Каждое домино тогда соответствует краю в графе, так что его конечные точки не покрываются никаким другим ребром. Следовательно, любое множество ребер, не имеющих вершины (совпадение), соответствует расположению домино и наоборот.
Мой вопрос - обобщение этого предыдущего:
Для прямоугольной сетки, где некоторые квадраты пусты, а некоторые заполнены, какое наибольшее количество домино M x N (для заданных M и N), которые могут быть помещены в мир, так что никакие два домино не перекрываются, и нет домино поверх заполненного квадрата?
Я не вижу, как преобразовать это в проблему соответствия, как это было сделано в предыдущем случае. Тем не менее, я также не вижу какой-либо конкретной причины, почему эта проблема будет немедленно NP-жесткой, поэтому может возникнуть многочленное решение проблемы.
Существует ли эффективный алгоритм решения этой проблемы? Или у кого-нибудь есть сокращение, которое показало бы, что эта проблема NP-hard?
Большое спасибо!