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

Матрица Форда Беллмана и метод Дейкстра - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Хватит ли имеющейся суммы денег на закупку необходимого количества топлива http://www.cyberforum.ru/cpp-beginners/thread1089959.html
Привет форумчане, уже который раз я прошу помощи у вас. Задали задачу которую нужно решить на C++ 2008 Express.
C++ Найти ошибки в коде задача из книги не работает, в чем могут быть опечатки #include <iostream> #include <cstring> using namespace std; int main(){ setlocale(LC_ALL,"Russian"); char *dictionary={ "карандаш", "инструмент для рисования", "клавиатура","устройство ввода", http://www.cyberforum.ru/cpp-beginners/thread1089944.html
выделение памяти new и ее подсчет _msize C++
void* a; a=new char; int size=_msize(a); почему размер 12? для void* a; a=new char; int size=_msize(a); размер 20 для void* a; a=new char;
C++ Можно ли с помощью count вывести такую информацию
а можно ли с помощью count вывести такую информацию 40 С = 104 F?40 градусов по цельсию = 104 градуса по фаренгейту.Требовалось написать программу для перевода градусов, я сделала, но вывод нужен другой #include "stdafx.h" #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "Russian"); double c;
C++ Сделать так, чтобы после сортировки вектора указатель показывал на тот же элемент, что и до сортировки http://www.cyberforum.ru/cpp-beginners/thread1089894.html
Есть вектор(STL) элементов. У меня есть указатель на определенный элемент. Я хочу сделать так, чтобы после сортировки этого вектора указатель показывал на тот же элемент, а не на элемент, который стоит на месте прошлого. Как это можно сделать?
C++ Написать программу, которая вводит информацию и печатает самое распространенное женское имя Прошу помощи, болит голова х) Задача: На основе таблицы, содержащей следующую информацию о группе студентов некоторого вуза (фамилия, имя, отчество, пол, возраст, курс) написать программу, которая вводит эту информацию и печатает самое распространенное женское имя. Реализовал так: #include <conio.h> #include <locale.h> #include <iostream> #include <string> using namespace std; подробнее

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

Матрица Форда Беллмана и метод Дейкстра - C++

05.02.2014, 15:48. Просмотров 802. Ответов 2
Метки (Все метки)

Тут такая проблема , задали написать матрицу с помощью єтих методов/ вопрос : Как вставить сюда матрицу (тоесть с помощью методов Беллмана и Дейкстра нужно написать матрицу)
Вот они :

std::vector<int> FORD_BELLMAN(int n, std::vector<std::vector<int> > &A, int s)
{
std::vector<int> D(n+1);
for (int v=1; v<=n; ++v)
D[v] = A[s][v];
D[s]=0;
for (int k=1; k<=n-2; ++k)
for (int v=1; v<=n; ++v)
if (v!=s)
for (int u=1; u<=n; ++u)
D[v]=std::min(D[v], D[u] + A[u][v]);
return D;
}



std::vector<int> DIJKSTRA(int n, std::vector<std::vector<int> > &A, int s)
{
std::vector<int> D(n+1);
for (int v=1; v<=n; ++v)
D[v] = A[s][v];
D[s]=0;
std::list<int> T;
/* T = V/{s} */
for (int v=1; v<=n; ++v)
if (v!=s)
T.push_back(v);

while (!T.empty()){
/* u = dowolny wierzcholek r taki, ze D[r]=min{D[p]: p nalezy do T} */
/* it - iterator na u */
std::list<int>::iterator it = T.begin();
for(std::list<int>::iterator i = T.begin(); i!=T.end(); ++i)
/* UWAGA na blad w ksiazce -> if(*i < *it) it = i; */
if (D[*i] < D[*it]) it = i;
int u = *it;
T.erase(it); /* T=T/{u} */

for (std::list<int>::iterator i=T.begin(); i!=T.end(); ++i){
int v=*i;
D[v]=std::min(D[v], D[u] + A[u][v]);
}

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