Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
barselona1994
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 88
30.04.2013, 19:08     Алгоритм Флойда-Уоршелла #1
У меня есть задание....дан граф, представленный матрицей смежности. Для каждой пары вершин определить, существует ли кратчайший путь между ними или нет. Если существует, то в матрицу смежности вывести 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 минут
Или может у кого есть реализация этого алгоритма для графов с отрицательными весами?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2013, 19:08     Алгоритм Флойда-Уоршелла
Посмотрите здесь:

C++ алгоритм Флойда-Уоршелла
Алгоритм Флойда-Уоршелла, результат работы не правильный( в чем ошибка?? C++
C++ Алгоритм Флойда–Уоршелла
C++ Алгоритм Флойда Оршала
Алгоритм Флойда-Уоршела C++
Нахождение кратчайшего пути в графе, алгоритм Уоршелла C++
Восстановление пути по матрице, возвращаемой алгоритмом Флойда - Уоршелла C++
Не могу найти ошибку в алгоритме Флойда-Уоршелла C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 05:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru