0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000001111111111111100000000000000000011111111111111100000000000000000
0000001111111111111100000000000000000011111111111111100000000000000000
0000001111111111111100000000000000000011111111111111100000000000000000
0000001111111111111100000000000000000011111111111111100000000000000000
0000000000000000000000000000000000000011111111111111100000000000000000
0000000000000000000000000000000000000011111111111111100000000000000000
0000000000011111100000000000000000000011111111111111100000000000000000
0000000000011111100000000000000000000011111111111111100000000000000000
0000000000011111100000000000000000000011111111111111100000000000000000
0000000000000000000000000000000000000011111111111111100000000000000000
0000000000000000000000000000000000000011111111111111100000000000000000
0000000000000111111000000000000000000011111111111111100000000000000000
0000000000000100001000000111111000000011111111111111100000000010000000
0000000000000100001000000111111000000000000000000000011000000000000000
0000000000000111111000000111111000000000000000000000011000000000000000
0000000000000000000000000000111111000000000000000000000000000000000000
0000000000000000000000000000111111000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
Вам дан двумерный массив байтов размером mx n. Гарантируется, что все байты равны 1 или 0. Найдите количество прямоугольников, представленных 1, при просмотре в 2d, как показано выше.
Для подсчета учитываются только полностью заполненные прямоугольники.
Прямоугольники должны быть окружены нулями, если они не находятся на краю (хотя прямоугольники, соприкасающиеся с диагональю 1, вполне допустимы (см. Пример.)).
Например, в приведенном выше массиве есть 5 правильных прямоугольников.
Вы можете использовать любой язык.
1
Я думаю, что лучший способ сказать это - сказать, что: прямоугольники должны быть окружены
—
нулями
Выполнено. Спасибо за формулировку на лучшем английском.
—
микробиан
Как насчет
—
Cruncher
1100\n1100\n0011\n0011
?
Я думаю, именно поэтому я написал «смежные / перекрывающиеся». Это 2 правильных прямоугольника из моего первоначального намерения. Но «окружающее» условие ограничивает их сейчас. У вас есть лучший способ объяснить это
—
микробиан
Даже в смежных условиях неоднозначно, означает ли диагональ соседние или нет. Та же самая двусмысленность, окруженные ли средства или нет, окруженные в углах, или только стороны
—
Cruncher