讨论 / 谁能帮我看看
yiyu9261wsx 2013-09-13 07:26:00
点我顶贴 收藏 删除
var f:array[0..500,0..500]of integer;

i,j,k,n,m,c,d:integer;

s1,s2:array[0..5]of integer;

function min(a,b:integer):integer;

begin

if a<b then exit(a) else exit(b);

end;

function dp(a,b:integer):integer;

var i,j,k,aa,bb:integer;

begin

if f[a,b]>0 then exit(f[a,b]);

k:=maxint;

for i:=1 to 5 do

begin

aa:=a+s1[i];

bb:=b+s2[i];

if (aa<0)or(bb<0) then continue;

k:=min(k,dp(aa,bb)+1);

end;

dp:=k;

f[a,b]:=k;

end;

begin

readln(n,m,c,d);

//writeln(a,' ',b);

s1[1]:=-2;s1[2]:=1; s1[3]:=1;s1[4]:=1;s1[5]:=1;

s2[1]:=-2;s2[2]:=-1; s2[3]:=2;s2[4]:=1;s2[5]:=0;

fillchar(f,sizeof(f),0);

f[n,m]:=1;

k:=dp(c,d)-1;

writeln(k);

end.

#1 GUA@2013-09-13 07:26:00
回复 删除
没return

查看更多回复
提交回复