![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
Krjuger |
![]()
Сообщение
#1
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Здраствуйте,столкнулся с проблемой при реализации поиска кратчайщего пути по алгоритму Дейкстры.
Исходные данные вводятся в виде графа,представленного в форме FO.
Программа вылетает с ошибкой на этапе заполнения вектора кратчайших путей максимальными значениями (dist[u]=INF; ) Компилятор MVS2008. |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Программа вылетает с ошибкой на этапе заполнения вектора Правильно делает. Ты либо заполняй вектор через push_back, либо сделай dist.reserve(n), чтоб зарезервировать необходимое число элементов, для дальнейшего к ним обращения. |
Krjuger |
![]()
Сообщение
#3
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
В общем я сделал эту программу и на некоторых тестах она выдает правильный результат,но сдать ее компьютеру мне пока что не удалось.
Вот код.
Полное условие такое. Для данного графа необходимо вывести список расстояний от первой вершины до всех остальных. Если от первой вершины до какой-либо другой нет пути, следует вывести -1. Ввод: граф, представленный в формате FO. Размер графа не более 1000 вершин. Вывод: последовательность целых чисел . Примеры: 5 2 0 1 3 0 2 4 0 3 5 0 4 0 Ответ: 0 1 2 3 4 |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Что-то ты больно много там лишнего делаешь... Вот этот код отрабатывает по крайней мере на приведенном тесте:
//Алгоритм Дейкстры.поиска кратчайшего пути, и я не вижу причин чтоб он не отработал на остальных. Только вот не надо опять про правильность ввода данных в матрицу начинать, ладно? Это называется "тебе шашечки, или ехать?" Либо ты заполняешь матрицу, КАК ТОГО ТРЕБУЕТ АЛГОРИТМ, и он работает, либо ты заполняешь матрицу так как хочешь ты, любуешься на нее, а потом, вручную ищешь результат. Не знаю, как тебе, но мне больше нравится второй способ. Тем более, что как бы не была заполнена матрица, при выводе ее можно показать как угодно. P.S. Если что - я ввод данных вообще не трогал, поправил только инициализацию матрицы. |
Krjuger |
![]()
Сообщение
#5
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Ну я вроде не настолько туп,чтобы еще привередничать к тому,кто мне помогает.Если у меня в задании есть какие либо извороты,не влияющие на алгоритм решения,то это уже мои личные извороты.Насчет заполнения.Это заполнение идентично тмоу,которое было в прошлой задаче с которой ты мне помог.И та задача сдана,так что сомневаться в правильности ввода не приходится.Кстати а разве мой способ заполнения не удовлетворял условиям алгоритма???Там на выходе получалась матрица смежности и получалась она правильно и не было там никаких ненужных изваротов,которые были в предыдущей задаче.
Большое спасибо,я чуть изменил вывод под свои требования и программа прекрасно работает. |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 0:02 |