社区讨论

哪里错了?拿了40分

P1002[NOIP 2002 普及组] 过河卒参与者 3已保存回复 2

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@mi4hk6b4
此快照首次捕获于
2025/11/18 19:24
4 个月前
此快照最后确认于
2025/11/18 19:24
4 个月前
查看原帖
CPP
program luogu_1002(input,output);
var 
  a1:array[1..8]of longint=(2,1,-1,-2,-2,-1,1,2);
  a2:array[1..8]of longint=(1,2,2,1,-1,-2,-2,-1);
  f:array[-1..21,-1..21]of longint;
  a:array[-1..21,-1..21]of boolean;
  n,m,i,j,x,y,p,q:longint;
begin
  for i:=-1 to 21 do
    for j:=-1 to 21 do
      a[i,j]:=true;
  readln(n,m,x,y);
  a[x,y]:=false;
  for i:=1 to 8 do
    begin
      p:=x+a1[i]; q:=y+a2[i];
      if (p>=0)and(p<=n)and(q>=0)and(q<=m) then a[p,q]:=false;
    end;
  for i:=1 to n do f[i,0]:=1;
  for j:=1 to m do f[0,j]:=1;
  for i:=1 to n do
    for j:=1 to m do
      begin
        if a[i,j]=false then f[i,j]:=0
          else f[i,j]:=f[(i-1),j]+f[i,(j-1)];
      end;
writeln(f[n,m]);
end.

回复

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

正在加载回复...