【
样例数据说明】
输入说明:草地被划分成4行5列,奶牛在6秒内从第1行第3列走到了第1行第5列。
输出说明:奶牛在6秒内从(1,3)走到(1,5)的方法只有一种(绕过她面前的树)。
递推:
关系式为:f[i,j,k]=sum(f[上下左右四个方向,k-1]);
代码:
const
maxn=101;
var
e:array[1..maxn,1..maxn]of boolean;
n,m,time,rx,ry,cx,cy:longint;
f:array[0..maxn,0..maxn,0..15]of longint;
procedure init;
var s:string; i,j:longint;
begin
readln(n,m,time);
for i:=1 to n do
begin
readln(s);
for j:=1 to m do
if s[j]='.' then e[i,j]:=true;
end;
readln(rx,ry,cx,cy);
f[rx,ry,0]:=1;
end;
procedure dp;
var i,j,k:longint;
begin
for k:=1 to 15 do
for i:=1 to 100 do
for j:=1 to 100 do
if e[i,j] then f[i,j,k]:=f[i-1,j,k-1]+f[i+1,j,k-1]+f[i,j-1,k-1]+f[i,j+1,k-1];
writeln(f[cx,cy,time]);
end;
begin
assign(input,'ctravel.in');reset(input);
assign(output,'ctravel.out');rewrite(output);
init;
dp;
close(input); close(output);
end.