Re: Задачка не для средних умов :)
От: fAX Израиль  
Дата: 11.07.02 03:01
Оценка:
Здравствуйте Painkiller, Вы писали:

P>есть фигура на клетчатой бумаге (фактически, двумерный массив из 0 и 1)

P>задача: разбить ее на минимальное количество непересекающихся клеточных прямоугольников

P>формулируется просто, но как решать?

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

Пока пришло в голову следующее (минимум не гарантирую):
Инициализация:
  • Каждая заполненная клетка становится прямоугольником.
  • Пока можно слить прямоугольник, так, чтобы образовался новый прямоугольник
  • Заместить оба прямоугольника на один.

    Можно в цикле выбирать по критериям, например, выбирать такое сочетание, которое максимально увеличит площадь.

    Вопрос: это как-то связано с картами Карно??? В любом случае, поищи сабж, должно помочь...

    ЗЫ: Утро, голова не варит...
  • ...Complex problems have simple, easy-to-understand wrong answers...
    (Grossman's Misquote of H.L.Mencken)
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.