p1121m.bak
来自「www.vijos.cn上一些习题的参考源码」· BAK 代码 · 共 61 行
BAK
61 行
program p1121m;
const
MAXN=15;
MAXM=15;
ma:array[1..8,1..2] of integer=((-2,1),(-1,2),(1,2),(2,1),(-2,-1),(-1,-2),(1,-2),(2,-1));
var
can:array[0..MAXN,0..MAXM] of boolean;
num:array[0..MAXN,0..MAXM] of longint;
n,m,mx,my:integer;
i,j,x,y,k:integer;
function bound(x,y:integer):boolean;
begin
if (x>=0) and (x<=n) and (y>=0) and (y<=m) then bound:=true
else bound:=false;
end;
procedure init;
begin
fillchar(num,sizeof(num),0);
fillchar(can,sizeof(can),true);
for i:=1 to 8 do
if bound(mx+ma[i,1],my+ma[i,2]) then
can[mx+ma[i,1],my+ma[i,2]]:=false;
end;
{procedure move(k:integer; var x,y:integer);
begin
case k of
1:inc(x);
2:inc(y);
end;
end;}
begin
readln(n,m,mx,my);
init;
num[0,0]:=1;
for i:=0 to n do begin
for j:=0 to m do begin
if not can[i,j] then continue;
x:=i; y:=j;
for k:=1 to 2 do begin
case k of
1:inc(x);
2:inc(y);
end;
{move(k,x,y);}
if can[x,y] and bound(x,y) then
inc(num[x,y],num[i,j]);
end;
end;
end;
writeln(num[n,m]);
readln;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?