讨论 / 大牛帮忙找错。。。。
wower2 2010-10-21 08:37:00
点我顶贴 收藏 删除
program rq195;

const dx:array[1..4]of integer=(1,-1,0,0);

dy:array[1..4]of integer=(0,0,-1,1);

var o,x1,y1,x2,y2,sum,head,head1,foot,m,n,i,j,k:longint;

lx,ly:array[1..200300]of longint;

b:array[-1..2003,-1..2003]of -1..1;

function appear(h,l:longint):boolean;

var i1:longint;

begin

for i1:=1 to foot do if (h=lx[i1])and(l=ly[i1])then exit(true);

exit(false);

end;

begin

readln(n,m);

for i:=-1 to n+2 do

for j:=-1 to m+2 do

b[i,j]:=-1;

For i:=1 to n do

begin

for j:=1 to m do read(b[i,j]);

readln;

end;

readln(x1,y1);

readln(x2,y2);

lx[1]:=x1;

ly[1]:=y1;

head:=0;

foot:=1;

repeat

inc(sum);

head1:=head;

for o:=head1+1 to foot do

begin

inc(head);

for i:=1 to 4 do

if b[lx[o]+dx[i],ly[o]+dy[i]]=0 then

begin

if (lx[o]+dx[i]=x2)and(ly[o]+dy[i]=y2)then begin write(sum);exit;end;

b[lx[o]+dx[i],ly[o]+dy[i]]:=-1;

begin

inc(foot);

lx[foot]:=lx[o]+dx[i];

ly[foot]:=ly[o]+dy[i];

end;

end;

end;

until head>foot;

write('No Answer!');

end.

#1 wower@2010-10-21 08:37:00
回复 删除
既然没人回答 那我就自己回答吧。。

head>foot改为head>=foot

(这不是转移积分啊)。。。。。

别封号

#2 wower@2010-10-21 08:37:00
回复 删除
既然没人回答 那我就自己回答吧。。

head>foot改为head>=foot

(这不是转移积分啊)。。。。。

别封号

查看更多回复
提交回复