您的位置:首页 > 其它

poj 3984迷宫问题【广搜】

2012-03-15 12:44 330 查看
迷宫问题
[b]TimeLimit:1000MS[/b][b]MemoryLimit:65536K[/b]
[b]TotalSubmissions:3850[/b][b]Accepted:2226[/b]
Description定义一个二维数组:

intmaze[5][5]={
0,1,0,0,0,
0,1,0,1,0,
0,0,0,0,0,
0,1,1,1,0,
0,0,0,1,0,
};
它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。
Input一个5×5的二维数组,表示一个迷宫。数据保证有唯一解。
Output左上角到右下角的最短路径,格式如样例所示。
SampleInput
0100001010000000111000010

SampleOutput
(0,0)(1,0)(2,0)(2,1)(2,2)(2,3)(2,4)(3,4)(4,4)

总结:用队列来实现广搜,如果有输出方向的要求,可以用last_dir[][]记录但因该注意栈溢出的问题。

code:


ViewCode
intdir[maxn*maxn];
voidprint_path(intx,inty)
{
intc=0;
for(;;)
{
intfx=fa[x][y]/m;
intfy=fa[x][y]%m;
if(fx==x&&fy==y)
break;
dir[c++]=last_dir[x][y];
x=fx;
y=fy;
}
while(c--)
putchar(name[dir[c]]);
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: