![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
xxx000 |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
Лабиринт размером M x N состоит из комнат размером 1 x 1 и стен размером 1 x 1. Дан план лабиринта, на котором цифрой 1 отмечены стены, а цифрой 0 - комнаты.
Выяснить, сможет ли человек выйти из лабиринта, если его поместить в комнату с координатами (A, B)? Порядок ввода исходных данных: M N p11 p12 ... p1N p21 p22 ... p2N . . . pM1 pM2 ... pMN A B Здесь M - количество строк на рисунке плана, N - количество столбцов на рисунке плана, p(i, j) - цифра ноль или один, соответствующая клетке плана с координатами i, j. A, B - координаты человека в лабиринте. Порядок вывода результатов: Да | Нет Пример ввода: 10 10 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 2 2 Пример вывода: Да Эту задачу надо решать рекурсией?? Сообщение отредактировано: xxx000 - 14.07.2010 19:14 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Не надо, а можно... Можно - рекурсией, можно - без рекурсии. Как тебе удобнее.
|
xxx000 |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
Unconnected |
![]()
Сообщение
#4
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Цитата А как без рекурсии, рекурсией она по времени не проходит. Про время сначала вообще ни слова не было.. Может, покажешь, как решал рекурсией? Задача интересная, но я вот тоже не понимаю, как итеративно решить можно. Может, дерево строить надо. Сообщение отредактировано: Unconnected - 16.07.2010 1:17 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Lapp |
![]()
Сообщение
#5
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Про время сначала вообще ни слова не было.. Не только про время - ни слова про ограничения на величины M и N.. Догадывайтесь сами, дорогие друзья, и делайте выводы - рекурсей решать или нет.. Никакого уважения к собеседникам. Вообще, этот товарищ со значащим именем xxx000 все равно не особо заботится о том, что ему скажут, и не любит отвечать.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
TarasBer |
![]()
Сообщение
#6
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
> А как без рекурсии, рекурсией она по времени не проходит.
Рекурсия - самый быстрый способ обхода, вообще-то. Просто не надо обходить клетки, в которых уже был. -------------------- |
Lapp |
![]()
Сообщение
#7
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Рекурсия - самый быстрый способ обхода, вообще-то. Несколько странное утверждение. Рекурсия не есть алгоритм. Это всего лишь способ программирования. И рекурсию, как и явные итерации, можно проводить по-разному.. Хотя, я не стану утверждать, что этот способ не имеет обратного влияния на алгоритм. Но, безусловно, постоянные вызовы поцедур и дерганье стека, сильно замедляет программу (и ест память). Впрочем, все эти разговоры все равно никому не нужны. Автор темы больше не покажется, проверено. До следующей "рдачи" (С), в которой он снова не даст достаточно данных.. )) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Unconnected |
![]()
Сообщение
#8
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Да, кажется, действительно ест. Сделал так:
{$APPTYPE CONSOLE} , при размерах поля 10*10 вылетает с переполнением стека. А если урезать как минимум до 7*10, то не вылетает, и даже выдаёт правильный результат. Хотя, может это я чего намудрил) ADDED: да, что-то совсем не то я сделал.. Мысля пришла опосля. Сообщение отредактировано: Unconnected - 17.07.2010 21:41 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Unconnected |
![]()
Сообщение
#9
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
{$APPTYPE CONSOLE} Вот так вроде лучше, не вылетает и на больших полях (20*10 пробовал). -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Цитата не вылетает и на больших полях Правда и ответ неверный выдает, но это уже мелочи ![]() 10 10 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 2 2 Чего должно вывести? А выводит? |
Unconnected |
![]()
Сообщение
#11
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
"Нет" выводит.. Как и должно.
Сообщение отредактировано: Unconnected - 17.07.2010 22:26 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
|
Unconnected |
![]()
Сообщение
#13
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Мм.. я на D2007 компилирую, может, в этом дело? Сейчас ещё раз скопировал с форума код и входные данные - всё равно нет. Качаю FPC, на нём попробую.
//Собсно, тут тоже алгоритм неправильный. Сообщение отредактировано: Unconnected - 17.07.2010 23:47 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Unconnected |
![]()
Сообщение
#14
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
{$APPTYPE CONSOLE} Тут правильный. -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Archon |
![]()
Сообщение
#15
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
-------------------- Close the World...txeN eht nepO
|
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 15:04 |