192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 942
|
||||||
1 | ||||||
Алгоритм Беллмана-Форда31.08.2018, 17:06. Показов 6218. Ответов 5
Метки нет Все метки)
(
Здравствуйте всем. Я вообще редко обращаюсь сюда за помощью решить задачу и стыдно как то, но я не понимаю в чём дело. Написал алгоритм а сайт не принимает моё решение. Дейкстру с первого раза принял а этот по идее легче и вообще без проблем должен был пройти все тесты но не тут то было.
Вот условия Кликните здесь для просмотра всего текста
Дан ориентированный граф, в котором могут быть кратные ребра и петли. Каждое ребро имеет вес, выражающийся целым числом (возможно, отрицательным). Гарантируется, что циклы отрицательного веса отсутствуют. Требуется посчитать длины кратчайших путей от вершины номер 1 до всех остальных вершин. Входные данные В первой строке входного файла INPUT.TXT записаны целые числа N и M - количество вершин и количество ребер графа (1 ≤ N ≤ 100, 0 ≤ M ≤ 10000). В каждой из последующих M строк записана тройка чисел, описывающих ребра: начало ребра, конец ребра и вес (вес - целое число от -100 до 100). Выходные данные В выходной файл OUTPUT.TXT выведите N чисел - расстояния от вершины номер 1 до всех вершин графа. Если пути до соответствующей вершины не существует, вместо длины пути выведите число 30000. input.txt 4 5 1 2 10 2 3 10 1 3 100 3 1 -10 2 3 1 output.txt 0 10 11 30000 мой код первый тест проходит а второй нет. Подозреваю что что то не так понимаю насчёт петли или кратных ребер
0
|
|
31.08.2018, 17:06 | |
Ответы с готовыми решениями:
5
Алгоритм Форда - Беллмана
|
Mournful Max
|
31.08.2018, 17:35
#2
|
Не по теме: del
1
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 942
|
|
31.08.2018, 17:41 [ТС] | 3 |
Спасибо что ответили, выхода нет и не может быть потому что максимальное кол-во вершин может быть равна 100 а у меня список размера SIZE который равен 102
1
|
165 / 114 / 59
Регистрация: 12.07.2018
Сообщений: 277
|
||||||
31.08.2018, 20:27 | 4 | |||||
![]() Решение
no swear, после строки 17 должна быть проверка на то, что мы посещали эту вершину:
1
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 942
|
|
31.08.2018, 21:00 [ТС] | 5 |
Спасибо большое, все тесты прошло, но я не до конца понимаю зачем нужна эта проверка? Значит я не понял суть этого алгоритма?
Можете объяснить пожалуйста что эта проверка даёт?
0
|
165 / 114 / 59
Регистрация: 12.07.2018
Сообщений: 277
|
|
31.08.2018, 21:39 | 6 |
![]() Решение
Если этой проверки не будет, то при наличии в графе отрицательных весов, можно получить посещение вершины, в которую невозможно попасть из начальной вершины 1. Например, в графе нет путей из 1 в вершины 10 и 11, но есть ребро 10->11 с весом -10. Тогда без добавленной проверки вершине 11 будет присвоено значение 30000-10=29990, т.е. что в неё есть путь.
2
|
31.08.2018, 21:39 | |
Помогаю со студенческими работами здесь
6
Восстановление пути из алгоритма Форда-Беллмана Алгоритм Форда Алгоритм Форда-Белмана Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |