0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 55
|
|
1 | |
найти количество различных маршрутов, ведущих к спасению17.05.2012, 11:21. Показов 21710. Ответов 27
Метки нет (Все метки)
Узник пытается бежать из замка, который состоит из MN квадратных комнат, расположенных в виде прямоугольника M×N. Между любыми двумя соседними комнатами есть дверь , однако некоторые комнаты закрыты и попасть в них нельзя. В начале узник находится в угловой комнате и для спасения ему надо попасть в противоположную угловую комнату. Времени у него немного, всего он может побывать не более, чем в M+N-1 комнате, включая начальную и конечную комнату на своем пути, то есть с каждым переходом в соседнюю комнату расстояние до выхода из замка должно уменьшаться. От вас требуется найти количество различных маршрутов, ведущих к спасению.
Формат входных данных Первая строчка входных данных содержит натуральные числа M и N, не превосходящих 1000. Далее идет план замка в виде M строчек из N символов в каждой. Один символ соответствует одной комнате: если символ равен 1, то в комнату можно попасть, если он равен 0, то комната закрыта. Первоначальное положение узника – левый нижний угол (первый символ последней строки), выход находится в правом верхнем углу (последний символ первой строки, оба этих символа равны 1). Формат выходных данных Программа должна напечатать количество маршрутов, ведущих узника к выходу и проходящих через M+N-1 комнату, или слово impossible, если таких маршрутов не существует. Входные данные подобраны таким образом, что искомое число маршрутов не превосходит 2.000.000.000. Пример Входные данные 3 5 11111 10101 11111 Выходные данные 3 Входные данные 3 5 11101 10101 10111 Выходные данные impossible Помогите решить, пожалуйста, сдавать через два часа...хоть начало...
0
|
17.05.2012, 11:21 | |
Ответы с готовыми решениями:
27
Найти количество различных маршрутов ведущих к спасению узника Вывести кол-во маршрутов, ведущих узника к выходу и проходящих через M+N-1 комнату, или слово impossible, если таких маршрутов не существует Программа должна напечатать количество маршрутов, ведущих узника к выходу и проходящих через M+N-1 комнату Посчитать количество замкнутых маршрутов, проходящий ровно через четыре различных города |
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 55
|
|
17.05.2012, 12:09 [ТС] | 3 |
Я же не 5 задач написала вам решить, а хотя бы какие-нибудь мысли
Добавлено через 23 минуты как думаете начать?
0
|
Higher
|
||||||
17.05.2012, 12:11 | 4 | |||||
Динамикой:
3
|
Ternsip
|
18.05.2012, 12:21
#5
|
Не по теме: diagon, Времени у вас навалом наверное... щедрый вы человек :),или из-за того что Юля17 девушка ?
0
|
diagon
|
18.05.2012, 12:23
#6
|
0
|
Ternsip
|
18.05.2012, 12:31
#7
|
Не по теме: diagon, Самое страшно разгрести буквы в условии
0
|
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 55
|
|
14.08.2012, 11:11 [ТС] | 8 |
Узник пытается бежать из замка, который состоит из MN квадратных комнат, расположенных в виде прямоугольника M×N. Между любыми двумя соседними комнатами есть дверь , однако некоторые комнаты закрыты и попасть в них нельзя. В начале узник находится в угловой комнате и для спасения ему надо попасть в противоположную угловую комнату. Времени у него немного, всего он может побывать не более, чем в M+N-1 комнате, включая начальную и конечную комнату на своем пути, то есть с каждым переходом в соседнюю комнату расстояние до выхода из замка должно уменьшаться. От вас требуется найти количество различных маршрутов, ведущих к спасению.
Формат входных данных Первая строчка входных данных содержит натуральные числа M и N, не превосходящих 1000. Далее идет план замка в виде M строчек из N символов в каждой. Один символ соответствует одной комнате: если символ равен 1, то в комнату можно попасть, если он равен 0, то комната закрыта. Первоначальное положение узника – левый нижний угол (первый символ последней строки), выход находится в правом верхнем углу (последний символ первой строки, оба этих символа равны 1). Формат выходных данных Программа должна напечатать количество маршрутов, ведущих узника к выходу и проходящих через M+N-1 комнату, или слово impossible, если таких маршрутов не существует. Входные данные подобраны таким образом, что искомое число маршрутов не превосходит 2.000.000.000. Пример Входные данные 3 5 11111 10101 11111 Выходные данные 3 Входные данные 3 5 11101 10101 10111 Выходные данные impossible Задачка из городской олимпиады, которая уже прошла, очень хочу узнать как она решается....
0
|
|
14.08.2012, 14:23
#9
|
0
|
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 55
|
|
15.08.2012, 10:55 [ТС] | 10 |
Она по-моему в мае проходила, раньше не было времени эту тему создать
0
|
Higher
|
|
15.08.2012, 12:40 | 11 |
0
|
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 55
|
||||||
23.08.2012, 10:31 [ТС] | 12 | |||||
Здравствуйте! Имеем функцию на C++.Помогите исправить ошибки, чтобы выводился правильный результат. Сначало условие, а ниже будет недоработанный код
Попытка к бегству Узник пытается бежать из замка, который состоит из MN квадратных комнат, расположенных в виде прямоугольника M×N. Между любыми двумя соседними комнатами есть дверь , однако некоторые комнаты закрыты и попасть в них нельзя. В начале узник находится в угловой комнате и для спасения ему надо попасть в противоположную угловую комнату. Времени у него немного, всего он может побывать не более, чем в M+N-1 комнате, включая начальную и конечную комнату на своем пути, то есть с каждым переходом в соседнюю комнату расстояние до выхода из замка должно уменьшаться. От вас требуется найти количество различных маршрутов, ведущих к спасению. Формат входных данных Первая строчка входных данных содержит натуральные числа M и N, не превосходящих 1000. Далее идет план замка в виде M строчек из N символов в каждой. Один символ соответствует одной комнате: если символ равен 1, то в комнату можно попасть, если он равен 0, то комната закрыта. Первоначальное положение узника – левый нижний угол (первый символ последней строки), выход находится в правом верхнем углу (последний символ первой строки, оба этих символа равны 1). Формат выходных данных Программа должна напечатать количество маршрутов, ведущих узника к выходу и проходящих через M+N-1 комнату, или слово impossible, если таких маршрутов не существует. Входные данные подобраны таким образом, что искомое число маршрутов не превосходит 2.000.000.000. Пример Входные данные 3 5 11111 10101 11111 Выходные данные 3 Входные данные 3 5 11101 10101 10111 Выходные данные impossible Вот собственно сам код
0
|
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||||||
23.08.2012, 10:53 | 13 | |||||
Юлия17071992, Если прям для условия задачи, то можно так:
1
|
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 55
|
|
28.08.2012, 12:43 [ТС] | 14 |
Код начинала писать с моим преподавателем по программированию, но мне был примерный планчик накидан, как он будет выглядеть. И вот что получилось видите сами
Добавлено через 1 минуту То есть это и есть работающая программка?
0
|
Заблокирован
|
|
28.08.2012, 12:51 | 15 |
- да есть здесь 3-х мерный алгоритм Дейкстры так же есть доработка поиска в глубину для решения этой же задачи (верней более широкой - з-х мерного лабиринта), могу приаттачить экзешник...
0
|
Заблокирован
|
|
28.08.2012, 13:12 | 16 |
Ниже аттачу поиск Дейкстры и поиск в глубину. Скрины отработки для решения именно этого лабиринта
Не по теме: От себя добавлю : С преподавателем вы концептуально ошиблись при решении данной задачи. Мой совет - кардинально пересмотреть алгоритм поиска!
1
|
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
28.08.2012, 13:15 | 17 |
да, это и есть работающая программка
Добавлено через 1 минуту самый простой способ решения этой задачи: методом ДП (динамического программирования), проще ничего нет.
0
|
Заблокирован
|
|
28.08.2012, 13:19 | 18 |
- Вы сами можете сказать логику какого из известных алгоритмов поиска он использует? И можно поросить вывести пути выхода в качестве числовых значений вершин?(думаю будете разочарованы ответами)
Не по теме: Я ещё раз повторюсь - неверный у ТС алгоритм поиска, его просто нет, уже хотябы DFS из поиска в глубину применили Добавлено через 1 минуту - можно получить ответ на этот вопрос . Не по теме: Обещаю изменить своё мнение если выведите правильные маршруты на экран а не количество (но пока я вижу концептуальную дыру в алгоритме)
0
|
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
28.08.2012, 13:21 | 19 |
используется метод ДП.
В этой задаче требуется: Если нужно будет выводить пути выхода в качестве числовых значений вершин, то это будет совсем другая задача. )
0
|
Заблокирован
|
|
28.08.2012, 13:24 | 20 |
- суть в том, что подсчитывать можно количество неверных путей, потому и прошу вывести их чтобы было видно какие пути просуммировали.
Не по теме: valeriikozlov, задачу подсчёта можно реализовать рекурсивным проходом по всем вершинам, а вот прямой перебор как сейчас для меня весьма и весьма сомнителен
0
|
28.08.2012, 13:24 | |
28.08.2012, 13:24 | |
Помогаю со студенческими работами здесь
20
Определить количество ведущих единиц Найти количество всевозможных маршрутов от города до города Определить количество ведущих нулей старшего байта short int Количество маршрутов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |