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

Односторонние дороги - C++

Восстановить пароль Регистрация
 
nas
0 / 0 / 0
Регистрация: 10.11.2010
Сообщений: 26
20.03.2011, 16:19     Односторонние дороги #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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
int Spisok::Pusto_Q (int *Q)
{
  for (int i=0;i<MaxNodes;i++)
     if ( *(Q+i)!=0 ) return 0; 
  return 1; 
}
 
void Spisok::Reshenie ()
{
  int S;
  int T;
  int u,v,Max;
  int i,j,k;
  svqz UkZv;
  int Q[MaxNodes];
 
  cout << "Введите источник: ";
  cin >> S; S--;
  for (i=0;i<MaxNodes;i++) { D[i] = A[S][i]; Q[i] = 0; }
  D[S] = 0;
  for (i=0;i<MaxNodes;i++)  Q[i] = 1;
  Q[S] = 0;
  while (!Pusto_Q(&Q[0])) 
  {
     Max = 0;
     for (i=0;i<MaxNodes;i++)
      if (Q[i]==1 && D[i]>Max) { Max = D[i]; u = i; }
     Q[u] = 0;
     for (i=0;i<MaxNodes;i++)
      if (Q[i] == 1)
         if ( D[i] < D[u]+A[u][i] ) D[i] = D[u] + A[u][i];
  }
 
  cout << "Матрица расстояний: \n";
  for (i=0;i<MaxNodes;i++) cout << D[i] << " ";
  cout << endl;
 
}
 
void Spisok::Vvod_Ves()
{
  cout << "Вводите элементы матрицы весо по строкам:\n";
  for (int i=0;i<MaxNodes;i++)
   for (int j=0;j<MaxNodes;j++)
     {
       cout << " A[" << (i+1) << "," << (j+1) << "]: "; 
       cin >> A[i][j];
           }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2011, 16:19     Односторонние дороги
Посмотрите здесь:

задача. дом у дороги. C++
C++ В системе двухсторонних дорог за проезд каждой дороги взимается некоторая пошлина.
C++ По системе двусторонних дорог определить, можно ли, закрыв какие-нибудь три дороги, добиться того, чтобы из города A нельзя было попасть в город B
C++ Рисование в консоли (дома и дороги)
Симулятор работы железной дороги C++
Автоматически построить дороги из единиц между "городами" C++
Построить дороги из единиц между городами из "-1" C++
Укажите в конце дороги. На пути к подсчитать количество слов C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 07:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru