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

Алгоритм Дейкстры - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Dev-C++ 4.9.9.2 не показывает номера строк http://www.cyberforum.ru/cpp-beginners/thread630866.html
Чё делать? +++++++++++++++++++++++++++++++++++++++ Я в неё интегрировал g++ 4.6.1 по-моему, вот инсталлятор mingw-get-inst-20111118.exe (пользовался им и раньше, всё было нормально) Инсталлятор качает чего-то с сайта, обновления, наверное. И теперь ошибки стали выводиться на русском языке, а номера строк, где эти ошибки есть, не выводятся. Добавлено через 5 часов 17 минут Парни, вы...
C++ Делаю Memory Manager Array с простым (int) exception последний элемент чудит //array_hpp #ifndef Array_HPP #define Array_HPP #include "Point.hpp" #include <iostream> class Array { http://www.cyberforum.ru/cpp-beginners/thread630864.html
C++ "Плейсхолдер" (placeholder)
"Плейсхолдер" (переводится как прототип или заполнитель ?) - так говорят многие участники на этом форуме, объясните пожалуйста, что это такое ?? поисковик выдал мне много всего от хабра с html5 до как лечить удава. Ребят, еще вопрос у меня в теме по Си )) про signal.h, помогите разобраться ))
Рисование ASCII кодами и русский текст в консоли C++
Всем добрый вечер. И вот такой вопрос есть. Сначала печатаю в консоли текст а под ним горизонтальную линию. Только вместо линии получаются каракули. Уже по разному пробовал, шрифты менял и ничего не помогает. Получается или текс по-русски а вместо линии непонятно что, или линия нормальная а вместо текста абракадабра. Как это можно одновременно сделать? #include <iostream> #include <windows.h>...
C++ Составить программу для вычисления количества цифр среди элементов списка. http://www.cyberforum.ru/cpp-beginners/thread630806.html
Тема: Динамические структуры данных. Линейные списки. Дан список А, состоящий из записей: первое поле – символ, второе – адрес следующего элемента. Составить программу для вычисления количества цифр среди элементов списка.
C++ Запуск программ на других компах Всем привет, вообщем перерыл весь интернет, как запускать скомпилированную программу на разных компьютерах, пробывал ставить и статич библиотеки и dll и mt\ и тд вылетали разн ошибки, вообщем пришол к решению создавать установщик windows и прикладывать к ним framework и нужные библиотеки, но что делать если я хочу например написать шуточную программу подшутить над кемнибудь, не буду я же ... подробнее

Показать сообщение отдельно
shPavel25
 Аватар для shPavel25
6 / 6 / 0
Регистрация: 29.03.2011
Сообщений: 44
30.07.2012, 20:52     Алгоритм Дейкстры
Добрый день, помогите пож-та решить задачи на с++. Нашел решение (расписаны все алгоритмы, процедуры подсчета и т. д.), но сложность состоит в том, что я не понимаю строищихся структур и вообще никогда не программировал на c++.Поэтому прошу помочь собрать все воедино (чтение из файла, работа программы, запись в файл). Основная задача - считать с файла, воспользоваться функцией, вывести в файл
Дан ориентированный взвешенный граф. Требуется найти минимальные расстояния от вершины S до всех остальных вершин.
Вход:
В первой строке через пробел записаны два натуральных числа N и S (S <= N < 103), где N – число вершин графа (нумерация вершин от 1 до N). В следующих N строках записана матрица смежности графа (формат ввода смотрите в примере). Веса ребер – натуральные числа, не превосходящие 106. Если какого-либо ребра нет, то соответствующий ему элемент матрицы равен -1. На главной диагонали стоят нули. Строки матрицы соответствуют вершинам, из которых направлены ребра.
Выход:
В первых N строках выведите по одному числу –минимальному расстоянию из вершины S в соответствующую вершину. Если пути из вершины S в какую-либо вершину не существует, то в соответствующей строке выведите -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
const int INF = 1000000000;
int main() {
int n;
... чтение n ...
vector < vector < pair<int,int> > > g (n);
... чтение графа ...
int s = ...; // стартовая вершина
vector<int> d (n, INF), p (n);
d[s] = 0;
vector<char> u (n);
for (int i=0; i<n; ++i) {
int v = -1;
for (int j=0; j<n; ++j)
if (!u[j] && (v == -1 || d[j] < d[v]))
v = j;
if (d[v] == INF)
u[v] = true;
for (size_t j=0; j<g[v].size(); ++j) {
int to = g[v][j].first,
len = g[v][j].second;
if (d[v] + len < d[to]) {
d[to] = d[v] + len;
p[to] = v;
}
}
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru