社区讨论

为什么只有70分?

P1605迷宫参与者 13已保存回复 12

讨论操作

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

当前回复
12 条
当前快照
1 份
快照标识符
@mi4f4qf5
此快照首次捕获于
2025/11/18 18:16
4 个月前
此快照最后确认于
2025/11/18 18:18
4 个月前
查看原帖
CPP
program ex;
const z:array[1..4,1..2] of longint=((-1,0),(0,-1),(1,0),(0,1));
var a:array[0..6,0..6] of longint;
    b:array[0..6,0..6] of boolean;
    s,m,n,t,sx,sy,fx,fy,x,y,i,j:longint;
procedure dfs(x,y:longint);
var i:longint;
begin
  if (x=fx)and(y=fy) then
  begin
    s:=s+1;
    exit;
  end;
  for i:=1 to 4 do
    if (b[x+z[i,1],y+z[i,2]]=false)and(a[x+z[i,1],y+z[i,2]]=0) then
    begin
      b[x+z[i,1],y+z[i,2]]:=true;
      dfs(x+z[i,1],y+z[i,2]);
      b[x+z[i,1],y+z[i,2]]:=false;
    end;
end;
begin
  fillchar(a,sizeof(a),0);
  fillchar(b,sizeof(b),false);
  s:=0;
  readln(n,m,t);
  readln(sx,sy,fx,fy);
  for i:=1 to t do
  begin
    readln(x,y);
    a[x,y]:=1;
  end;
  for i:=0 to m+1 do
  begin
    a[0,i]:=1;
    b[0,i]:=true;
  end;
  for i:=1 to n+1 do
  begin
    a[i,0]:=1;
    b[i,0]:=true;
  end;
  for i:=0 to m+1 do
  begin
    a[n+1,i]:=1;
    b[n+1,i]:=true;
  end;
  for i:=0 to n+1 do
  begin
    a[i,m+1]:=1;
    b[i,m+1]:=true;
  end;
  dfs(sx,sy);
  write(s);
end.

回复

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

正在加载回复...