end; Получаем
end;
Получаем цепочку: Way[5,5] ?Way[2,5] ?Way[2,4] ?Way[2,3] ?Way[2,1] ?Way[1,1]. Жирным шрифтом выделены процедуры, в которых имя города выводится на входе в рекурсию, курсивом - на выходе из рекурсии. Цепочка имеет вид: 5 2 1 3 4 5 (индексы городов, напомним, что нумерация изменена для удобства на противоположную).
Осталось привести процедуру нахождения A (ее фрагмент).
...
FillChar(A,SizeOf(A),0);
A[1,1].d:=1;
for i:=2 to n do
for j:=1 to i do
if (i<>j) or (i=n) then
for k?Qi do
if ((k<>j) or (j=1)) and (A[k,j].d<>0) and (A[k,j].d+1>A[i,j].d) then
begin
A[i,j].d+A[k,j].d+1;A[j,i].d:=A[i,j].d;
A[i,j].l:=k;A[j,i].l:=A[i,j].l;
end;
Рассмотрим решения задачи методом полного перебора вариантов. Для этого требуется ряд дополнительных структур данных, а именно:
New:array[1..max] of boolean;
way_r:array[1..2*max] of byte;
Первый массив необходим для хранения признака - посещался или нет город (New[i]=true - города с номером
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа