В9. Поиск путей в графе
Составим программу для решения задания В9.
На рисунке - схема дорог, связывающая города А, Б, В, Г, Д, Е, Ж, И, К. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. Сколько существует путей из города А в город К?
На рисунке - схема дорог, связывающая города А, Б, В, Г, Д, Е, Ж, И, К. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. Сколько существует путей из города А в город К?
Схема дорог представляет из себя орграф. Построим для него матрицу смежности и сохраним её в текстовом файле inB9.txt.
0 1 1 1 0 0 0 0 0
0 0 0 1 1 0 0 0 0
0 0 0 1 0 1 0 0 0
0 0 0 0 1 0 1 0 0
0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0
Для корректной работы программы пронумеруем вершины таким образом, чтобы направления были заданы от вершины с меньшим номером к вершине с большим. Полученная матрица смежности несимметрична.
const N=9;
var graph: array [1..N, 1..N] of integer; // массив для определения графа
R: array [1..N] of integer;//массив количества путей
f:text; i,j,k:integer;
begin
assign(f,'inB9.txt');
reset(f);
for i:= 1 to N do
begin
for j:=1 to N do read(f,graph[i,j]);
readln(f);
end;
close(f);
for i:= 1 to N do R[i]:=0;
R[1]:=1;
for i:= 1 to N do
for j:=1 to N do
if graph[i,j]=1 then R[j]:=R[j]+R[i];
for k:= 1 to N do write(R[k],' ');
writeln;
end.
Комментариев нет:
Отправить комментарий