美国某知名大学计算机博士家庭作业。。。

 一个迷宫是由N(无限制,你可以取任何值,比如20,50,90,1000等)多个房间组成,每两个相邻的房间之间有可能会有一条通道。这个通道有个神奇的特性,那就是当一个人从一个房间经过某条通道进入到另一个房间后,他身后那条通道会立即消失,同时其他三个方向上可能会出现新的通道,当然也可能没有新通道出现,那就证明这是个死胡同,走不通,但此时你已经退不回去了,说的粗俗点就是“你挂了”。

现在让你编一个程序,在一个给定的迷宫里面找到所有潜在可能的逃生路径,并将他们打印出来。注意:有可能会有环路哦!
要求:
        1、程序尽可能简练,算法的时间和空间复杂度没有强制要求,但要合情理。假如,你的程序处理1000个房间时,用了20多秒,那肯定是不合格的。
        2、将所有逃生路径全部输出,但不要重复输出相同的路径。
        3、程序必须能够正确处理可能存在的环路情况。

例如:

这个示例中有环路,编号为0的房间为出口处。
如果从房间号为127的格子出发,那么存在两条逃生路径。因此,你的程序应该输出像下面这样的结果:
starting in room 127
path found
    in 127 go south
    in 17 go south
    in 8 go south
    in 12 go west
    in 25 go west
outside


path found
    in 127 go south
    in 17 go west
    in 93 go south
    in 25 go west
outside

 

参考答案:http://download.csdn.net/detail/wjlkoorey/4053971

仅供大家交流分享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值