7 2 0 ... 0 Bl= 0 0 ....
7 2 0 ... 0
Bl= 0 0
....
0 ... 0
В нашей задаче определены стоимости вершин графа или стоимости столбцов матрицы А*, и необходимо найти разбиение наименьшей стоимости. Пусть стоимости описываются в массиве Price (Price:array[1..MaxN] of integer) и для примера на рисунке имеют значения [15 13 4 3 8 9 10]. Осталась чисто техническая деталь - отсортировать элементы каждой строки матрицы Bl по возрастанию стоимости соответствующих столбцов матрицы А*. Результирующая матрица Bl имеет вид:
а логика формирования приведена ниже по тексту (Blocs).
procedure Blocs;{выделения блоков}
{Bl - глобальная переменная}
procedure Sort;
{Price и Bl - глобальные переменные}
begin
...
end;
procedure Press(i,j:integer);{Сдвигаем элементы строки с номером i, начиная с позиции (столбца) j, на одну позицию вправо}
{Bl - глобальная переменная}
var k:integer;
begin
k:=j;
while Bl[i,k]<>0 do begin{Поэтому размерность матрицы с плюс единицей. В
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа