С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 04.10.2012
Сообщений: 88
1

Алгоритм Флойда-Уоршелла

30.04.2013, 19:08. Показов 1095. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть задание....дан граф, представленный матрицей смежности. Для каждой пары вершин определить, существует ли кратчайший путь между ними или нет. Если существует, то в матрицу смежности вывести 1, если нет, то 0, если путь бесконечно мал вывести -1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
const int inf=1E9;
using namespace std;
int main()
{  
 int n,i,j,k,d[100][100];
 scanf("%d",&n);           //считывание из файла
 for (i=0;i<n;++i)
  for (j=0;j<n;++j)
  {
   scanf("%d",&d[i][j]);
  }
 
 
 for (k=0;k<n;++k)            //Алгоритм Флойда-Уоршелла 
  for (i=0;i<n;++i)
   for (j=0;j<n;++j)
    if (d[i][k]<inf && d[k][j]<inf) d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
 
 for (i=0;i<n;++i)
   for (j=0;j<n;++j)
if (d[i][j] > 0) d[i][j]=1;
 
for (i=0;i<n;++i)
   for (j=0;j<n;++j)
if (d[i][j] < 0) d[i][j]=-1;
  
  for (i=0;i<n;++i,printf("\n"))    // вывод на консоль результата
  for (j=0;j<n;++j)
 printf("%d ", d[i][j]);
}
входной файл:
Код
0 2 2
2 0 3
2 3 0
выход:
Код
-1 -1 -1
-1 -1 -1
-1 -1 -1
Но это неверно!
Должно быть:
Код
1 1 1 
1 1 1 
1 1 1
Что я делаю неверно?

Добавлено через 7 минут
Или может у кого есть реализация этого алгоритма для графов с отрицательными весами?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2013, 19:08
Ответы с готовыми решениями:

Алгоритм Флойда - Уоршелла
не получается реализовать алгоритм Флойда-Уоршелла, вроде все должнен выводить, а выводит или нули...

Алгоритм Флойда–Уоршелла
for (int k=0; k&lt;n; k++) for (int i=0; i&lt;n; i++) for (int j=0; j&lt;n; j++)как сделать так,...

Алгоритм Флойда-Уоршелла. Графы
Вообщем, требуется найти кратчайший путь между тремя вершинами в дереве со взвешенными ребрами....

Реализовать алгоритм Флойда Уоршелла
Нужна помощь по написанию алгоритма по задаче представленной ниже: Туристическая фирма...

0
30.04.2013, 19:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.04.2013, 19:08
Помогаю со студенческими работами здесь

Алгоритм Флойда-Уоршелла (результат работы неправильный)
Задание выглядит так: Дан ориентированный взвешенный граф. Найти пару вершин, кратчайшее...

Разработка ПО для решения задачи минимализации задержек пакетов в корпоративной сети алгоритм Флойда-Уоршелла
Задание: Банк имеет а городе 6 крупных отделений, соединенных оптоволоконными линиями передачи....

Не могу найти ошибку в алгоритме Флойда-Уоршелла
Дан ориентированный граф, рёбрам которого приписаны некоторые неотрицательные веса (длины). Найти...

Восстановление пути по матрице, возвращаемой алгоритмом Флойда - Уоршелла
Делаю, алгоритм флойда-уоршелла, делаю сам на делфи, но исходники с решением моей проблемы (ну по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru