Лабиринт паскаль |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Лабиринт паскаль |
PFanthem |
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: 0 |
Пусть имеется лабиринт разбитый на клетки со стороной 1м. Длина лабиринта n, а ширина m. Закрашенная клетка -это непроходимая область, Высота лабиринта везде одинакова h=3м. Вход в лабиринт и выход расположены в левом верхнем и в правом нижнем углу. Нумерация клеток начинается из левого верхнего угла . перед открытием сезона необходимо оклеить все внутренние стены лабиринта новыми обоями .
Требуется: написать программу определения общей площади всех внутренних стен лабиринта Вводные данные: n и m, двухмерный массив. Элементы массива принимают два значения "пусто" или "занято" |
Федосеев Павел |
Сообщение
#2
|
Знаток Группа: Пользователи Сообщений: 481 Пол: Мужской Реальное имя: Федосеев Павел Репутация: 9 |
Думаю, что здесь алгоритм такой:
1. Заполняем массив лабиринта так, как описано в условии 0 - проход, 1 - стена. 2. Просматриваем лабиринт в поисках первой попавшейся 1 и 0 - пустого места рядом с ней. 3. Мысленно прижимаемся левой рукой к стене и идём вперёд, насколько позволяют стены. при этом стену, к которой прижимались рукой обозначаем не 1, а 2. 3. Движемся вперёд пока не закончится стена или не вернёмся в исходное положение. 4. Повторяем пункты 2 - 3 до полной замены всех 1 в массиве, описывающем лабиринт. Количество 1, заменённых на 2 и есть искомый периметр стен. Осталось умножить его на высоту h и написать ответ. |
Текстовая версия | 23.12.2024 19:43 |