Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача Брудно
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
В шаге от краЯ
Прямоугольное поле mна n разбито на mn квадратных клеток. Нектороые клетки покрашены в черный цвет. Известно, что все клетки,покрашенные в черный цвет,могут быть разбиты на несколько неперсекающихся и неимеющих общих вершин прямоугольников. Считая, что цвета клеток клеток даны в виде массива array [1..m] of array [1..n] of boolean; подсчитать количество черных прямоугольников, о которых шла речь. Количество действий порядка m*n

Решение:
Число прямоугольников равно числу их левых верхних углов. Является ли клетка верхним левым углом, можно узнать, упосмотрев на ее цвет. а также цвет верхнего и левого соседей. (Их может не быть, если клетка с краю).

мучаюсь уже долго.

Хелп...
Альтаир.. по старой дружбе_) хелп, великий фотограф)
Michael_Rybak
answer := 0;
for i := 1 to m do
for j := 1 to n do
if a[i][j] = black then
if (i = 1) or (a[i - 1][j] = white) then
if (j = 1) or (a[i][j - 1] = white) then
answer := answer + 1;
volvo
Цитата
мучаюсь уже долго.
Правда? А привести результаты мучений - никак? Тогда нечего и писать, что мучаешься!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.