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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шифрование методом цезаря http://www.cyberforum.ru/cpp-beginners/thread1062888.html
Здравствуйте, прошу вас о помощи. Это может показаться наглым, но, мне срочно нужна помощь с курсовым проектом, дело в том что с горем пополам я написал программу для шифрования методом цезаря,...
C++ Нужно заменить последнюю заглавную букву в строке на слово "Kukushechka" То есть программа должна сама искать последнюю заглавную букву, определять ее номер в строке, ставить вместо нее и последующего текста слово "Kukushechka". В таком состоянии она только определяет... http://www.cyberforum.ru/cpp-beginners/thread1062881.html
Странное поведение cin C++
Перегружаю оператор ввода следующим образом: #include <iostream> using namespace std; class Vector2D { public: long double x, y;
C++ Однонаправлений список. Операції: “[]” видалити елемент в заданій позиції, наприклад: int i; list L; L[i]; “[]” додати елемент в задану позицію, напр
Помогите. Есть одна написаная. Условия: Черга. Операції: “+” додати елемент ; “-“ видалити елемент ; bool() перевірка «чи порожня черга?» В ней все работает, все запускается, не могу...
C++ Теорема Пифагора http://www.cyberforum.ru/cpp-beginners/thread1062868.html
Здравствуйте, программа всякий раз выводит в ответе "0". В чём ошибка? Благодарен! Язык C++, Visual C++ 2008 Express #include <iostream> #include <conio.h> #include <math.h> using namespace std;...
C++ Точка останова(повреждение кучи) Прошу помочь, смотрел по форуму похожие темы - ответа не нашел void Base::Read() { char* name=new char;//переменная для имени char* str=new char;//для построчного чтения файла ifstream... подробнее

Показать сообщение отдельно
denysd21012011
3 / 3 / 2
Регистрация: 29.03.2013
Сообщений: 133

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

04.01.2014, 15:22. Просмотров 1356. Ответов 8
Метки (Все метки)

Что-то у меня Дейкстра не работает... прошу помощи у вас... Сам уже часа 1.5 сижу и не могу найти ошибку...
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
41
42
#include <iostream>
#include <cstring>
#include <cmath>
#include <stack>
#include <queue>
using namespace std;
 
int n,m,a[101][101],s,f,p,h;
bool used[101];
int res[101];
 
int main(){
freopen("input.txt","rt",stdin);
freopen("output.txt","wt",stdout);
memset(a,0,sizeof(a)); 
 
cin >> n >> s >> f;
for (int i=1; i<n+1; i++) res[i]=1000000000;
 
for (int i=1; i<n+1; i++) 
    for (int j=1; j<n+1; j++) {
        cin >> a[i][j];
        if (a[i][j]==-1) a[i][j]=1000000000;
    }
p=s;
memset(used,0,sizeof(used)); used[s]=true; res[p]=0;
for (int k=1; k<n; k++) {
    h=-1;
    for (int j=1; j<n+1; j++)
        if (!used[j] && (h==-1 || res[j]<res[h])) h = j;
    used[h]=true;
    //if (h==1) continue;
    for (int j=1; j<n+1; j++) 
        res[j]=min(res[h]+a[h][j],res[j]);
    p=h;
}
for (int i=1; i<n+1; i++) cout << res[i] << " ";
cout << endl;
 
 
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru