Форум программистов, компьютерный форум 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); подробнее

Показать сообщение отдельно
zubi
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 8

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

23.08.2014, 16:15. Просмотров 813. Ответов 3
Метки (Все метки)

Дан ориентированный граф, рёбрам которого приписаны некоторые неотрицательные веса (длины). Найти длину кратчайшего пути из вершины s в вершину t.
Формат входных данных
В первой строке заданы три числа: число вершин в графе N ≤50, номера вершин s и t. Далее идёт матрица смежности графа, то есть N строк, в каждой из которых записано N чисел. j-ое число в i-ой строке матрицы смежности задает длину ребра, ведущего из i-й вершину в j-ую. Длины могут принимать любые значения от 0 до 1000000, число -1 означает отсутствие соответствующего ребра. Гарантируется, что на главной диагонали матрицы стоят нули.
Формат выходных данных
Выведите одно число – минимальную длину пути. Если пути не существует, выведите -1.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#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)
                    d[i][j] = min (d[i][j], d[i][k] + d[k][j]);
    cout<<d[s][t];  
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru