50分,WA

P1605 迷宫

是不是越界了?
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


|