Поиск минимального количества прямоугольников

Правка ru1, от AlexSam, 2016-05-14 20:57:13

Добрый день всем,

я пытаюсь постепенно повышать свой уровень в алгоритмах и структурах данных, немотря на то, что вуз уже закончил и практикую программирование. И вот, на практике, столкнулся с задачей, которую не могу решить оптимально, возможно, сообщество сможет что-то подсказать. В общем в чём суть. У нас есть прямоугольная таблица, каждая ячейка её, характеризуется свойством. Надо разбить эту таблицу на минимальное количество прямоугольных областей, в которых данное свойство будет одинаково. Области могут пересекаться. На выходе мы должны получить координаты левого верхнего угла области, а также ширину и высоту Каждой области. Например,что-то вроде такого (свойство заменено цифрой).

Входные данные

5 7
1 1 1 1 2 2 2
1 1 1 1 2 2 2
1 1 1 1 2 2 2
1 1 1 1 2 2 2
1 1 1 1 2 2 2

Выходные данные

2
1 1 5 4
1 5 5 3

Думал о том, что бы представить данную таблицу в виде графа, но как модифицировать его обход, даже не представляю. Возможно, у сообщества появятся какие-то идеи. Возможно, просто посоветуете, в сторону каких алгоритмов мне следует копать.

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
ru1 Русский AlexSam 2016-05-14 20:57:13 1166 Первая редакция (опубликовано)