我想应该很少有题目能卡SAP+GAP+CUR的程序了吧……
附:我的RQNOJ194程序
const
oo=19930508;
var
c:array[0..1000,0..1000] of longint;
h,vh,cur:Array[0..1000] of longint;
maxflow,n,m,i,j,k,x,y,z:longint;
function aug(i,now:longint):longint;
var
k,minh,tmp,j:longint;
begin
aug:=0;
minh:=n-1;
if i=n then
begin
inc(maxflow,now);
exit(now);
end;
for j:=1 to n do
if c[i,j]>0 then
begin
if h[j]=h-1 then
begin
if c[i,j]>now then
tmp:=aug(j,now)
else tmp:=aug(j,c[i,j]);
dec(c[i,j],tmp);
inc(c[j,i],tmp);
dec(now,tmp);
inc(aug,tmp);
if h[1]>=n then exit;
if now=0 then break;
end;
end;
if aug=0 then
begin
for j:=1 to n do
if (c[i,j]>0) and (h[j]<minh) then
begin
minh:=h[j];
k:=j;
end;
cur:=k;//cur优化
dec(vh[h]);
if vh[h]<=0 then h[1]:=n;
h:=minh+1;
inc(vh[h]);
end;
end;
procedure sap;
begin
fillchar(vh,sizeof(vh),0);
fillchar(h,sizeof(h),0);
vh[0]:=n;
for i:=1 to n do
cur:=1;//初始化当前弧
while h[1]<n do
aug(1,oo);
end;
begin
readln(m,n);
for i:=1 to m do
begin
readln(x,y,z);
c[x,y]:=z;
end;
sap;
writeln(maxflow);
end.