названия городов. Этот


названия городов. Этот вывод можно осуществить с помощью следующей простой рекурсивной процедуры. 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. Рассмотрим логику формирования
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz