我是靠谱客的博主 无辜枕头,最近开发中收集的这篇文章主要介绍07年 ZZUPC校赛第一题 祝福( DFS+BFS ~),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

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)。问:

在戒指的帮助下,骑士最少要多少步才能回到入口?在步数最少的前提下,总共有多少种办法到达入口?注意,骑士不会傻到一直停留在原地不动。

 

【输入文件】

13个整数,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 ~)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部