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

Алгоритм Флойда (теория графов) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ типы данных bool http://www.cyberforum.ru/cpp-beginners/thread290284.html
уважаемые подскажите почему не компилирует функция "bool shod " можно ли ее чем заминить и вообще что такое shod ?
C++ Передача указателя на метод в функцию Подскажите плиз. Есть некий класс и в нём метод: ... DWORD WINAPI func(LPVOID lParam) { ... return 1; } metod() { http://www.cyberforum.ru/cpp-beginners/thread290279.html
C++ По некоторому количеству строк (не более N) найти пары строк с общим словом
По некоторому количеству строк (не более N) найти пары строк с общим словом. помогите, пожалуйста. слишком быстро перескочили и со строками очень туго.. Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержание.
Определение симметричны цифры C++
Добрый вечер, помогите с написанием задачи, так как возникли трудности. Буду очень благодарна. Задача: Определение симметричны цифры действительного числа относительно точки.
C++ движение строчки справа налево http://www.cyberforum.ru/cpp-beginners/thread290261.html
нужно сделать бегущую строку которая двигается справа налево при этом сначала появляется по 1й букве и как токо слово появилося все на экране строка замирает Вот что вышло у меня #include "stdafx.h" #include "stdio.h" #include "conio.h" #include "math.h" #include <windows.h> #include <iostream> #include <locale.h>
C++ Адреса и указатели на языке С++ Pomogite pliz((( #include <iostream.h> typedef int* IntPtrType; int main() { IntPtrType ptr_a,ptr_b; int num_c=4, num_d=7; ptr_a=&num_c; ptr_b=ptr_a; подробнее

Показать сообщение отдельно
Healius
4 / 4 / 0
Регистрация: 06.05.2011
Сообщений: 50

Алгоритм Флойда (теория графов) - C++

07.05.2011, 14:47. Просмотров 2264. Ответов 2
Метки (Все метки)

код:
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
32
33
34
35
36
37
38
39
40
int** floid(int** W,int n){
    vector<int**>D(n);
    int** A=new int*[n];
    for(int i=0;i<n;i++){
        A[i]=new int[n];
        for(int j=0;j<n;j++)
            A[i][j]=1;
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            if(i==j)
                A[i][j]=0;
            else{
                if(W[i][j]==0)
                    A[i][j]=100;
                else
                    A[i][j]=W[i][j];
            }
        }
    }
    D.push_back(A);
    int k=1;
    while(k<n){
        int** B=new int*[n];
        for(int i=0;i<n;i++){
            B[i]=new int[n];
            for(int j=0;j<n;j++)
                B[i][j]=1;
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(i!=j)
                    B[i][j]=min(D.back()[i][j],(D.back()[i][k]+D.back()[k][j]));
            }
        }
        k++;
        D.push_back(B);
    }
    return D.back();
}
на выходе должна быть матрица длин кратчайших путей, в пункции параметры - матрица весов графа и её размерность. проблема: алгоритм не видит пути через 0-ю вершину. подскажите плиз, в чем дело? остальные пути нормально вычисляет, алгоритм написан верно.

Добавлено через 16 часов 59 минут
народ, неужели никто не может помочь?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru