0 / 0 / 0
Регистрация: 02.09.2012
Сообщений: 18
|
|
1 | |
Составить программу нахождения самого кратчайшего пути11.09.2012, 21:52. Показов 3530. Ответов 8
Метки нет (Все метки)
Описание
Петя долго что-то чертил на небольшом листе в клетку, после чего, продемонстрировал его Васе. - Смотри, это лабиринт, - сказал Петя, - и я готов поспорить, что ты не сможешь найти из него самую короткую дорогу. Васе срочно нужна помощь программиста. Задача По заданной карте лабиринта (размера N x M) найдите самый кратчайший путь из точки A в точку B. Учтите, что каждая клетка имеет метку, которая соответствует времени, которое нужно затратить, чтобы пройти по ней. Также есть непроходимые клетки. За пределы лабиринта выходить нельзя. Из каждой клетки, можно пройти в соседние по горизонтали или вертикали (если они не являются непроходимыми). То есть, возможно перейти в соседнюю клетку, если она имеет общее ребро с текущей. Входные данные В первой строке 2 целых числа N и M через пробел (3<=N,M<=100). В следующих N cтроках по M символов без пробелов: 1-9 - время, которое нужно затратить, чтобы пройти по клетке (проходимая клетка); # - стена (непроходимая клетка); A - клетка старта (всегда присутствует в схеме); B - клетка выхода из лабиринта (может быть где угодно в схеме лабиринта). A и В всегда присутствуют в схеме лабиринта, и всегда в единственном экземпляре. Выходные данные Одно целое число - наименьшее время, необходимое для того, чтобы добраться из клетки A в клетку B. Пример входных данных Код
3 4 #2B1 49#2 A121 Код
7
0
|
11.09.2012, 21:52 | |
Ответы с готовыми решениями:
8
Составить программу для нахождения кратчайшего пути парохода Составить программу нахождения самого большого по модулю элемента массива Составьте программу кратчайшего пути парохода Написать программу для нахождения кратчайшего пути между заданными вершинами графа |
0 / 0 / 0
Регистрация: 02.09.2012
Сообщений: 18
|
|
11.09.2012, 23:44 [ТС] | 3 |
Dani, Кажется я начинаю понимать о чём ты), если можно, то хотелось бы подробнее
0
|
11.09.2012, 23:54 | 4 |
v0dka, смотри: идем из начальной вершины, добавляем в очередь все вершины, которые являются соседними с текущей и т.д., пока не дойдем до конца. И если для вершины i есть соседняя v, то длина пути до нее - длина до i + время. И в последней ячейке и будет ответ. Не добавлять вершину в очередь, если она уже посещена, или это стена.
1
|
0 / 0 / 0
Регистрация: 02.09.2012
Сообщений: 18
|
|
12.09.2012, 00:06 [ТС] | 5 |
Dani, спасибо... ты мне ещё шире глаза открыл завтра попробую решить... если будут вопросы или ничего не получится, в личку напишу или сюда)
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
13.09.2012, 06:14 | 6 |
не совсем правильный алгоритм. Вот тест:
4 3 ##B 111 1#9 11A Для ячейки [2][3] будет ситуация, что она уже посещена (имеет значение 10), но ее все-таки нужно заносить в очередь снова.
1
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
13.09.2012, 19:23 | 8 |
наоборот, во второй раз ей нужно уменьшать расстояние, иначе не вычислим:
На самом деле, для одной ячейки, используя алгоритм из поста №4, значение может изменяться (уменьшаться) несколько раз (даже больше 3-х раз). Поэтому нужно или использовать алгоритм из 4 поста (но с условием добавлять уже пройденные вершины, если для них уменьшилось значение, а значит размер очереди намного больше N*M), или еще один алгоритм (но это в другой раз, если описанный алгоритм не пройдет по времени).
1
|
0 / 0 / 0
Регистрация: 02.09.2012
Сообщений: 18
|
|
14.09.2012, 00:32 [ТС] | 9 |
Был в последнее время занят сильно, не успел порешать))) скоро попробую и если что отпишу)
0
|
14.09.2012, 00:32 | |
14.09.2012, 00:32 | |
Помогаю со студенческими работами здесь
9
Задача нахождения кратчайшего пути Распаралелить алгоритм нахождения кратчайшего пути Граф и реализация алгоритмов нахождения кратчайшего пути Составить программу для нахождения времени пути t1 поезда, если есть встречный ветер Как сделать функцию для нахождения самого длинного и короткого пути между 2 вершинами? Написать программу для нахождения кратчайшего расстояния между двумя станциями метро Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |