讨论 / 为什么我的Relabel to Front 也过不了?
caoyuan9642 2008-06-26 03:56:00
点我顶贴 收藏 删除
我是按照算法导论上原封不动地写的

Program maxflow;

Type arr=Array[1..1000,1..1000]Of longint;

brr=Array[1..1000]Of longint;

Var c,f:Array[1..1000,1..1000]Of longint;

e,h:Array[1..1000]Of longint;

n,s,t:longint;

Function min(a,b:longint):longint;

Begin If a>b Then Exit(b)ELse Exit(a);End;

Procedure push(a,b:longint);

Var i:longint;

Begin

i:=min(e[a],c[a,b]-f[a,b]);

f[a,b]:=f[a,b]+i;

f[b,a]:=-f[a,b];

e[a]:=e[a]-i;

e[b]:=e[b]+i;

End;

Procedure RELABEL(a:longint);

Var i,min:longint;

Begin

min:=n;

For i:=1 to n do If c[a,i]-f[a,i]>0 Then

If h[i]<min Then min:=h[i];

h[a]:=min+1;

End;

Procedure DISCHARGE(u:longint);

Var i,j,cur,v:longint;

L:Array[1..1001]Of longint;

Begin

Fillchar(L,sizeof(L),0);

j:=0;

For i:=1 to n do If((c[u,i]<>0)Or(c[i,u]<>0))And(c[u,i]-f[u,i]>0)Then Begin inc(j);L[j]:=i;End;

cur:=1;

While e[u]>0 do Begin

v:=L[cur];

If v=0 Then

Begin

RELABEL(u);

cur:=1;

End

Else If(c[u,v]-f[u,v]>0)And(h[u]=h[v]+1)Then PUSH(u,v)

Else inc(cur);

End;

End;

Procedure init;

Var i,m,x,y,z:longint;

Begin

Readln(m,n);

For i:=1 to m do Begin

Readln(x,y,z);

c[x,y]:=z;

End;

s:=1;t:=n;

Fillchar(h,sizeof(h),0);

Fillchar(e,sizeof(e),0);

Fillchar(f,sizeof(f),0);

h[s]:=n;

For i:=1 to n do If c[s,i]<>0 Then Begin

f[s,i]:=c[s,i];

f[i,s]:=-c[s,i];

e[i]:=c[s,i];

e[s]:=e[s]-c[s,i];

End;

End;

Procedure R_F;

Var i,j,k,a:longint;

l:Array[1..1001]Of longint;

Begin

init;

Fillchar(l,sizeof(l),0);

j:=0;

For i:=1 to n do If Not(i in[s,t])Then Begin inc(j);l[j]:=i;End;

i:=l[1];j:=1;

While i<>0 do Begin

a:=h[i];

DISCHARGE(i);

If h[i]>a Then Begin

For k:=j-1 downto 1 do l[k+1]:=l[k];

l[1]:=i;j:=1;

End;

inc(j);i:=l[j];

End;

Writeln(e[t]);

End;

Begin

R_F;

End.

状态题目:学生运输

状态编号: [查看该题]

状态: Unaccepted

测评机: Xeost[5]

得分: 60分

提交日期: 2008-6-26 15:11:00

有效耗时: 该状态没有记录

测试结果1: 测试结果正确

测试结果2: 测试结果正确

测试结果3: 测试结果正确

测试结果4: 测试结果正确

测试结果5: 无输出|运行超时

测试结果6: 无输出|运行超时

测试结果7: 测试结果正确

测试结果8: 无输出|运行超时

测试结果9: 无输出|运行超时

测试结果10: 测试结果正确

#1 wx--168@2008-06-26 03:56:00
回复 删除
I dont know......
查看更多回复
提交回复