0 / 0 / 1
Регистрация: 13.06.2012
Сообщений: 60
1

Поиск кратчайшего пути с условием

29.01.2013, 23:59. Показов 1282. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан ориентированный граф, задаётся количеством вершин - m и рёбер- n, списком рёбер.
Необходимо найти кратчайший путь из вершины t в s, с условием: если их несколько вывести тот путь в котором максимальное ребро минимально. Вывести максимальное ребро входящее в путь.
Например:
3 3
1 2 1
2 3 2
1 3 3
1 3
Вывод: 1 2 3
2
Пояснение: в пути 1-2-3 максимальное ребро -2, а в пути 1-3 - максимальное ребро 3.
Как ни пробовал для всех случаев не получается написать правильное решение.
м.б. поможет - обычный алгоритм Дейкстры.
Pascal
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
const
  maxn = 100;
  infinity = maxlongint;
var
  i,j,u,v,n,m,c,min,s,t:longint;
  e,w:array[1..maxn,1..maxn]of longint;
  ne,use,p,d:array[1..maxn]of longint;
begin
  read(n,m,t,s);
  for i:=1 to m do begin
    read(u,v,c);
    inc(ne[v]); e[v,ne[v]]:=u;
    w[v,u]:=c;
  end;
  for i:=1 to n do d[i]:=infinity;
  d[s]:=0;
  for i:=1 to n do begin
    min:=infinity;
    for j:=1 to n do if (use[j]=0)and(d[j]<min) then begin
      min:=d[j]; u:=j;
    end;
    use[u]:=1;
    for j:=1 to ne[u] do begin
      v:=e[u,j];
      if d[v]>d[u]+w[u,v] then begin
        d[v]:=d[u]+w[u,v]; p[v]:=u;
      end;
    end;
  end;
  writeln(d[t]);
  u:=t; write(u);
  while u<>s do begin
    u:=p[u]; write(' ',u);
  end;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.01.2013, 23:59
Ответы с готовыми решениями:

Поиск кратчайшего пути (алгоритм Дейкстры) с наименьшим максимальным ребром
Есть классическая реализация Дейкстры, пытаюсь добавить условие: если есть несколько кратчайших...

Поиск кратчайшего пути от точка 1 до точки n, пройдя все остальные точки
в общем такая задача, есть n точек. и расстояние от каждой точки до других. как найти минимальное...

Нахождение кратчайшего пути до цели в лабиринте
Допустим у нас есть лабиринт,в котором бегают какие-нибудь существа. Есть ли возможность, чтобы они...

Поиск кратчайшего пути в алгоритме флойда! (На графах)
Алгоритм флойда! Нужно найти поиск кратчайшего пути в графе Program Algoritm_Floyda; Const ...

0
29.01.2013, 23:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2013, 23:59
Помогаю со студенческими работами здесь

Поиск кратчайшего пути
Всем доброго времени суток! Скажите, пожалуйста. Есть ли какие-то принципиальные отличия волнового...

Поиск кратчайшего пути
В одном массиве даны все возможные комбинации чисел (0,1,2,3,4). Представляют собой города. В...

Поиск кратчайшего пути
Нужно найти кратчайший путь в графе не используя эффективных методов, т.е. полным перебором путей....

Поиск кратчайшего пути
Саша и Маша путешествуют вдоль оси Ох на которой есть (неизвестное кол-во) достопримечательностей в...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru