Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задача Брудно

Автор: В шаге от краЯ 21.11.2006 21:33

Прямоугольное поле mна n разбито на mn квадратных клеток. Нектороые клетки покрашены в черный цвет. Известно, что все клетки,покрашенные в черный цвет,могут быть разбиты на несколько неперсекающихся и неимеющих общих вершин прямоугольников. Считая, что цвета клеток клеток даны в виде массива array [1..m] of array [1..n] of boolean; подсчитать количество черных прямоугольников, о которых шла речь. Количество действий порядка m*n

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

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

Хелп...
Альтаир.. по старой дружбе_) хелп, великий фотограф)

Автор: Michael_Rybak 21.11.2006 21:47

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 21.11.2006 21:51

Цитата
мучаюсь уже долго.
Правда? А привести результаты мучений - никак? Тогда нечего и писать, что мучаешься!