电子老鼠闯迷宫
来源:互联网 发布:python判断是否是str 编辑:程序博客网 时间:2024/05/14 02:59
如下图12×12方格图,找出一条自入口(2,9)到出口(11,8)的最短路径。
var
i,n,m,j,max,ans,l:longint;a,s:array[0..1000,0..1000] of longint;
f:array[0..1000] of longint;
w:array[1..2,1..2] of longint;
fx:array[1..4,1..2] of longint;
procedure print(n:longint);
begin
if n=0 then exit;
inc(ans);
print(f[n]);
if n<>l then write('(',s[n,1],',',s[n,2],')->')
else writeln('(',s[n,1],',',s[n,2],')');
end;
procedure bfs;
var
head,tail,k,i,q1,q2:longint;
begin
head:=0; tail:=1; s[1,1]:=w[1,1]; s[1,2]:=w[1,2]; f[1]:=0;
repeat
head:=head+1;
for i:=1 to 4 do
begin
q1:=s[head,1]+fx[i,1];
q2:=s[head,2]+fx[i,2];
if (q1<=max) and (q2<=max) and (a[q1,q2]=0) and (q1>=1) and (q2>=1) then
begin
tail:=tail+1;
f[tail]:=head;
s[tail,1]:=s[head,1]+fx[i,1];
s[tail,2]:=s[head,2]+fx[i,2];
a[s[tail,1],s[tail,2]]:=1;
if (s[tail,1]=w[2,1]) and (s[tail,2]=w[2,2]) then
begin
l:=tail;
print(tail);
tail:=0;
end;
end;
end;
until head>=tail;
end;
begin
fx[1,1]:=1;
fx[1,2]:=0;
fx[2,1]:=-1;
fx[2,2]:=0;
fx[3,1]:=0;
fx[3,2]:=1;
fx[4,1]:=0;
fx[4,2]:=-1;
readln(max);
for i:=1 to 2 do
for j:=1 to 2 do
read(w[i,j]);
readln;
for i:=1 to max do
begin
for j:=1 to max do
read(a[i,j]);
readln;
end;
for i:=1 to max do
begin
a[i,0]:=1;
a[0,i]:=1;
end;
a[0,0]:=1;
bfs;
write(ans);
end.
0 0
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫.cpp
- 电子老鼠闯迷宫 1455
- 电子老鼠闯迷宫 SSL1455
- (ssl1455)电子老鼠闯迷宫
- markdown 基本语法
- Matlab与线性代数--矩阵的LU分解
- 网络流24题1 飞行员配对方案问题
- Linux系统中的内存清理和释放命令归纳
- springmvc常用注解标签详解
- 电子老鼠闯迷宫
- python常用模块大全
- mysql中数据类型的长度
- 【机器学习】如何成为当下合格的算法工程师
- javascript(js)的小数点乘法除法问题
- webrtc研究-remb协议分析
- $.extend $.fn.extend
- 学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)
- DIRECTORY_SEPARATOR