概述
Problem A:祝福
【问题描述】
得知Atlantis即将沉没的消息以后,King决定把他的人民送到安全的国外去。但是码头已经废弃很多很多年了。码头前有一个迷宫,国王的骑士只身闯入了这个迷宫……
骑士在迷宫的出口遇到了不明生物的袭击!骑士因为是单独作战,所以很快便招架不住了,他的大马被打得奄奄一息(。。。)
这个时候,迷宫中的两座石像(一个是猫,一个是天使。(!!!!!))里放出了无数锋利的刀片,把不明生物全部杀死,骑士当场晕倒在地。等他醒来,发现马已经死了,手上多了一个戒指,上面写着:
“这个戒指会帮助你逃脱。它赋予了神奇的力量。有了它,每次移动如果是只要|x-x1|+|y-y1|<=P(P在输入文件中给出),且(x1, y1)不是障碍物,你就能实现(x, y) -> (x1, y1)的移动!”(Angel暗自想:还有这么心黑的……)
迷宫为n*m(0<n,m<=20)的矩阵。骑士从(n, m)到(1, 1)。问:
在戒指的帮助下,骑士最少要多少步才能回到入口?在步数最少的前提下,总共有多少种办法到达入口?注意,骑士不会傻到一直停留在原地不动。
【输入文件】
第1行3个整数,n, m, P,分别代表迷宫大小和移动范围
以后n行,每行m个数,代表了迷宫,其中0代表可通,1代表不能通过。
【输出文件】
两个整数,用空格分开,分别代表最少到达入口的步数和路径的数目。假设一定能够达到入口。
【样例输入】
2 2 1
0 0
1 0
【样例输入】
2 1
本来纯用BFS的,结果死活不对,就用DFS+BFS了,DFS很顺~幸好数据量不大,要不就不好玩了。
我的搜索是以那个点为中心,画个图就知道了,是一个四边形,画下就好~不过这个循环让我好纠结,还不如都判断一遍简单。。
最后
以上就是无辜枕头为你收集整理的07年 ZZUPC校赛第一题 祝福( DFS+BFS ~)的全部内容,希望文章能够帮你解决07年 ZZUPC校赛第一题 祝福( DFS+BFS ~)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复