原始森林中有很多树,如线段树、后缀树和红黑树等,你掌握了所有的树吗?别担心,本问题不会谈论树,而是介绍原始森林中的一些动物,第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。
用的深搜,对于深搜的时间复杂度怎么计算本人并不是太了解,还好不是在线提交题目,可以很轻松的水过。不过还是加了几条剪枝,防止老师自己造数据在线测试的时候时间上撑不住。