названия городов. Этот
названия городов.
Этот вывод можно осуществить с помощью следующей простой рекурсивной процедуры.
procedure rec(i:byte);
begin
if i<>1 then begin rec(A[i].l); writeln(name[i]);end;
end;
Как обобщить этот набросок решения для первоначальной формулировки задачи? Для удобства перенумеруем города в обратном порядке - с востока на запад. Изменим массив A:
A:array[1..max,1..max] of record
d,l:byte;
end;
Под элементом A[i,j].d - путь из города i в город j - понимается максимальное число городов в маршруте, состоящем из двух частей: от i до 1 (на восток) и от 1 до j (на запад). По условию задачи нам необходимо найти наилучший по числу городов путь из n-го города в n-й. Считаем, что A[1,1].d=1 и A[i,j]=A[j,i]. Через Qi обозначим множество городов, из которых можно попасть в город i. Верны следующие соотношения:
• A[i,j].d=max(A[k,j].d+1), при k?Qi, k<>j, если j<>1;
• A[i,i].d=max(A[k,i].d), при i>1 и k?Qi.
Рассмотрим логику формирования
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа