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

Не могу найти ошибку в алгоритме Флойда-Уоршелла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужна проверка, имеет ли судоку решение http://www.cyberforum.ru/cpp-beginners/thread1246229.html
Здравтсвуйте! В данный момент пишу программу которая решает судоку: Критика кода приветствуется. main.cpp #include <fstream>
C++ Как установить количество элементов в строке массива? как установить по 5 элементов в строке массива? http://www.cyberforum.ru/cpp-beginners/thread1246214.html
Прочитать несколько секунд wav файла в массив C++
Есть win32 проект в Студии. Задача - запросить диалог выбора wav файла, проверить что это wav файл, прочитать его хедер, взять оттуда нужные данные в виде чисел - битрейт, количество каналов, формат и т.п. и затем прочитать заранее заданное количество отсчетов в заранее приготовленный для них массив. Причем, если файл будет моно, то отсчеты читаются как есть, если стерео - то при кодировке...
C++ Есть ли готовая функция для работы с массивами?
Подскажите, что за функция в cpp есть, для форматирования массивов? Вот в павне можно было сделать так: char str; format(str, 256, "color %x", 1); //справа параметры, как printf, только записывается в массив. system(str); Вот в c++ нет такой, а как же тогда форматировать массивы?
C++ Метод не возвращает значение http://www.cyberforum.ru/cpp-beginners/thread1246170.html
Здравствуйте. Создал простейший метод, для возвращения введённого значения. А возвращает то-адрес, то-ли что-то непонятно. Прошу объяснить в чём проблема // ConsoleApplication18.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std;
C++ Укажите где ошибка (ошибка во время выполнения программы) Здравствуйте, помогите пожалуйста найти ошибки в коде которые возникаю при выполнении программы Картинка с ошибкой внизу поста. Код: void Zipper::OutCompress(string binary) { FILE *bin = fopen(binary.c_str(), "rb"); char info_block_size; fread(info_block_size, 1, 5, bin); int _sz = atoi(info_block_size); подробнее

Показать сообщение отдельно
DieMore
3 / 3 / 2
Регистрация: 21.08.2014
Сообщений: 17
23.08.2014, 22:10     Не могу найти ошибку в алгоритме Флойда-Уоршелла
Вообще,для данной задачи лучше использовать алгоритм Дейкстры или Форда-Беллмана. Они быстрее и потребляют меньше памяти.
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
#include<iostream>
#include<stdio.h>
#include<cmath>
 
using namespace std;
 
int main(){
    freopen("input.txt","r",stdin);
    int d[55][55],n,s,t;
    cin>>n>>s>>t;
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            cin>>d[i][j];
    for(int k=0;k<n;k++)
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++) {
                if(d[i][k]>0 && d[k][j]>0) {
                    if (d[i][j] == -1) d[i][j] = d[i][k] + d[k][j];
                    else d[i][j] = min (d[i][j], d[i][k] + d[k][j]);
                }
            }
    cout<<d[s][t];  
    return 0;
}
Должно работать.
 
Текущее время: 03:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru