# первое паросочетание”

первое паросочетание” не требует разъяснений. for i:=1 to N do begin {назначение переменных i, j, pp следует очевидно} j:=1; pp:=true; while (j&lt;=M) and pp do begin if (A[i,j]=1) and (YM[j]=0) then begin XN[i]:=j;YM[j]:=i; pp:=false; end; inc(j); end; end; Как лучше хранить чередующуюся цепочку, учитывая требование изменения паросочетания и продумывая логику её построения? Естественно, массив, пусть это будет Chain:array[1..NMmax] of -NMmax.. NMmax, где NMmax - максимальное число вершин в графе, и его значение для рассмотренного примера равно [1, -4, 4, -2, 3, -3], то есть вершины из множества YM хранятся со знаком минус (вспомните метод построения максимального потока). Итак, поиск чередующейся цепочки. function FindChain:boolean; var p,yk,r:word; begin &lt;инициализация данных, в частности yk:=1;&gt;; &lt;нахождение свободной вершины в XN&gt;; if &lt;вершина не найдена&gt; then begin FindChain:=false;exit;end;

Индекс
Элементарные функции Линейные уравнения Нелинейные уравнения Случайные числа