完整的最大流以及讲义,越详细越好.一个小时以内不能有的就算了

来源:百度知道 编辑:UC知道 时间:2024/06/27 23:07:40
最好是有pascal的完整程序.

program Maxflow_With_MinCost;
const
name1='flow.in';
name2='flow.out';
maxN=100;{最多顶点数}
type
Tbest=record {数组的结构}
value,fa:integer;
end;{到源点的最短距离,父辈}
Nettype=record
{网络邻接矩阵类型}
c,w,f:integer;
{弧的容量,单位通过量费用,流量}
end;
var
Net:array[1..maxN,1..maxN] Of Nettype;
{网络N的邻接矩阵}
n,s,t:integer;{顶点数,源点、汇点的编号}
Minw:integer;{最小总费用}
best:array[1..maxN] of Tbest;{求最短路时用的数组}

procedure Init;{数据读人}
var inf:text;
a,b,c,d:integer;
begin
fillchar(Net,sizeof(Net),0);
Minw:=0;
assign(inf,name1);
reset(inf);
readln(inf,n);
s:=1;t:=n;{源点为1,汇点n}
repeat
readln(inf,a,b,c,d);
if a+b+c+d>0 then
begin
Net[a,b].c:=c;{给弧(a,b)赋容量c}
Net[b,a].c:=0;{给相反弧(b,a)赋容量0}
Net[a,b].w:=d;{给弧(a,b)赋费用d}
Net[b,a].w:=-d;{给相反孤(b,a)赋费用-d