算法设计与分析练习题(拯救Amaze)

  原始森林中有很多树,如线段树、后缀树和红黑树等,你掌握了所有的树吗?别担心,本问题不会谈论树,而是介绍原始森林中的一些动物,第1种是金刚,金刚是一种危险的动物,如果你遇到金刚,你会死的。第2种是野狗,它不会祥金刚那么危险,但它会咬你。
  Amaze是一个美国的女孩,她不幸迷失于原始森林中。Magicpig非常担心她,他要到原始森林找她。Magicpig知道如果遇到金刚他会死的,野狗也会咬他,而且咬了两次之后他也会死的。Magicpig是多么可怜!
输入的第1行是单个数字t(0<=t<=20),表示测试用例的数目。
  每个测试用例是一个Magicpig地图,之前的一行指出n(0<n<=30),原始森林是一个n*n单元矩阵,其中:
 (1). p表示Magicpig。
 (2). a表示Amaze。
 (3). r表示道路。
 (4). k表示金刚。
 (5). d表示野狗。
  请注意,Magicpig只能在上、下、左、右4个方向移动。
  对于每个测试用例,如果Magicpig能够找到Amaze,则在一行中输出“Yes”,否则在一行中输出“No”。

输入样本:
4
3
pkk
rrd
rda
3
prr
kkk
rra
4
prrr
rrrr
rrrr
arrr
5
prrrr
ddddd
ddddd
rrrrr
rrrra


输出结果:
Yes
No
Yes
No



  题目描述很清楚,主要意思就是从p这个点走到a这个点,k为金刚,如果碰见会被一次性咬死,所以可以把所有的金刚所在的点都当做是不能走的点。d为野狗,第一次并不会被咬死,第二次会被咬死,所以,要控制只能被狗咬一次,毕竟第二次就死翘翘了。r表示道路,可以走。找出是否有从p走到a的一条通路,如果有,则输出Yes,否则,输出No。

  用的深搜,对于深搜的时间复杂度怎么计算本人并不是太了解,还好不是在线提交题目,可以很轻松的水过。不过还是加了几条剪枝,防止老师自己造数据在线测试的时候时间上撑不住。

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值