是不是越界了?
by q_hacker_p @ 2024-01-20 10:41:52
@[0LCH0](/user/1042158) 你的 `x + dx[i]` 和 `y + dy[i]` 要判断有没有超过 `n` 和 `m`,有没有变成负数。
by Y_QWQ_Y @ 2024-01-20 10:49:58
@[Y_QWQ_Y](/user/677091) 纯蒟蒻,不会改qwq
by 0LCH0 @ 2024-01-21 18:44:03
PASCAL:
```pascal
var
i,j,k,n,m,t,sx,sy,fx,fy,a,b:longint;
ans:int64;
z:array[0..10,0..10] of longint;
flag:array[0..10,0..10] of boolean;
procedure dfs(x,y:longint); //深搜开始
begin
if z[x,y]=1 then exit; //判断是否遇到障碍物
if (x=fx) and (y=fy) //判断是否到达终点
then
begin
inc(ans); //更新答案
exit;
end;
flag[x,y]:=true; //将**flag[x,y]**设为已经走过
if (x-1>0) and (not flag[x-1,y]) then dfs(x-1,y); //递归开始(如果越出地图或那一个点一走过则不进行深搜)
if (x+1<=n) and (not flag[x+1,y]) then dfs(x+1,y);
if (y-1>0) and (not flag[x,y-1])then dfs(x,y-1);
if (y+1<=m) and (not flag[x,y+1])then dfs(x,y+1);
flag[x,y]:=false; //原地回溯
end;
begin
readln(n,m,t);
readln(sx,sy,fx,fy);
fillchar(z,sizeof(z),0);
for i:=1 to t do
begin
readln(a,b);
z[a,b]:=1;
end;
dfs(sx,sy); //调用子程序
writeln(ans); //输出(大功告成)
end.
```
by E303 @ 2024-01-21 21:29:36
@[STYYS35ZYZ](/user/1106358) AC了,Thanks♪(・ω・)ノ
by 0LCH0 @ 2024-01-22 08:12:24
@[STYYS35ZYZ](/user/1106358) 你这怕不是Java吧???
by Mark_Zhu @ 2024-01-24 09:34:32
@[Mark_Zhu](/user/922137) pascal!!!!!!!
by E303 @ 2024-01-25 15:26:59