![]() |
|
Модераторы: Poseidon |
![]()
|
|
| divinepro |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
Помогите, пожалуйста, решить задачку на c++
На квадратном листе клетчатой бумаги размером n на n нарисовано несколько прямоугольников, каждый прямоугольник состоит из клеток, различные прямоугольники не накладываются друг на друга и не соприкасаются. Дана целочисленная квадратная матрица порядка n, в которой элемент равен 0, если соответствующая клетка принадлежит какому-либо прямоугольнику, и отличен от нуля в противном случае. Определить число прямоугольников |
|||
|
||||
| Sanaff |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 151 Регистрация: 15.9.2009 Где: г. Северодвинск Репутация: -1 Всего: 1 |
Общий алгоритм можно так описать:
Создали пустую матрицу такого же размера, заполнили нулями (для меток пройденных точек) Идём по матрице слева направо и сверху вниз. если встретили не 0, то это начало прямоугольника. идём вправо, пока 0 не встретим - это правая граница прямоугольника. и идём вниз, пока 0 не встретим - это нижняя граница прямоугольника. в матрице меток эту всю площадь прямоугольника заполняем единицами. счётик прямоугольников увеличиваем на 1. идём дальше, но если текущий элемент помечен в матрице меток как занятый ( = 1 ), то пропускаем его. --------------------
Программист - это локальный бог ©ICQ 373-628-456 |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |