![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
Krjuger |
![]()
Сообщение
#1
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Дан граф. Требуется построить для него матрицу расстояний. Если пути не существует, тщ елемент матрици равен -1.Для висячих вершин (вершин степени 0) положим так же -1, для всех остальных вершин на диагонале положим 2.
Ввод: граф, представленный в формате FO. Размер графа не более 150 вершин. Тобиш при вводе в программу. 5 0 3 4 0 2 5 0 2 5 0 3 4 0 я должен получить результат -1 -1 -1 -1 -1 -1 2 1 1 2 -1 1 2 2 1 -1 1 2 2 1 -1 2 1 1 2 Задачу надо решить успользуя алгоритм Флойда.Для его использования надо исходные данные преобразовать в матрицу смежности,вот тут то у меня и возникли проблемы.
Как я не старался получить что либо более сносное,ничего не вышло,поэтому прошу помощи. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Ну, ты б для начала проверил, правильно ли заполняется матрица смежности. Я бы сделал так:
#include <iostream> На твоих входных данных выдает:
(элементы главной диагонали были сброшены в ноль, по привычке. Можешь потом пройтись по матрице и заполнить их чем угодно.) |
Krjuger |
![]()
Сообщение
#3
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Спасибо огромное,я изначально понимал,что именно в преобразовани в смежную матрицу у меня проблемы.Но вот самому исправить не вышло.На необходимое мне значение на диагонали я поменял,но тут с приведенными тобой исправлениями все равно выходит небольшая накладка.По условию,если точка висячая,тобиш не соединяется с другими,то ее значение должно быть -1,а в приведенном коде выходит 0 т.к. лежит на диагонали.Я согласен что это бред,но таково задание.
В общем я чуть чуть изменил под свои требования и вышло вот так.
|
Krjuger |
![]()
Сообщение
#4
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Так,я немного погорячился,так что то что в предыдущем после не решает мою,проблему,так что буду думать пока то сам.Как идея ввести переменную в которой будет храниться позиция переменной t,если t=0 и позиция ее 1 то вершина висячая и элемент на диагонали равен -1,а если позиция не первая, то как минимум с 1 вершиной данная соединена ребром и значит на диагонали будет 2.Щас попробую это реализовать.
Добавлено через 9 мин. В общем,в итоге вот программа,которую я сдал.
|
![]() ![]() |
![]() |
Текстовая версия | 22.06.2025 0:37 |