社区讨论

求助,莫名其妙就WA了,只有70

P1605迷宫参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lod51455
此快照首次捕获于
2023/10/31 00:52
2 年前
此快照最后确认于
2023/11/05 11:12
2 年前
查看原帖
PASCAL
const
  dx:array[1..4] of longint=(-1,0,1,0);
  dy:array[1..4] of longint=(0,1,0,-1);
var
  a:array[0..100,0..100] of longint;
  flag:array[0..100,0..100] of boolean;
  i,j,x1,x2,y1,y2,p,q,n,m,t,ans:longint;

procedure find(x,y:longint);
var
  i:longint;
begin
  if (x<1) or (x>n) or (y<1) or (y>n) then exit;
  if (x=x2) and (y=y2) then
  begin
    inc(ans);
    exit;
  end;
  for i:=1 to 4 do
    if (a[x+dx[i],y+dy[i]]=0) and (flag[x+dx[i],y+dy[i]]=true) then
    begin
      flag[x+dx[i],y+dy[i]]:=false;
      find(x+dx[i],y+dy[i]);
      flag[x+dx[i],y+dy[i]]:=true;
    end;
end;

begin
  readln(n,m,t);
  readln(x1,y1,x2,y2);
  fillchar(a,sizeof(a),0);
  fillchar(flag,sizeof(flag),true);
  for i:=1 to t do
  begin
    readln(p,q);
    a[p,q]:=1;
  end;
  find(x1,y1);
  write(ans);
end.

回复

2 条回复,欢迎继续交流。

正在加载回复...