哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级) G 小乐乐打游戏 【BFS】…

传送门:https://ac.nowcoder.com/acm/contest/301/G

 

题意概括:

给一个地图,有一个火山口 F 一个 起点 S 一个出口 E。

   1.小乐乐每走一次只能上下左右四个方向中走一步。
        2.小乐乐每走一步,火山喷发的岩浆就会向四周蔓延一个格子,所有岩浆走过的地方都视为被岩浆覆盖。
        3.小乐乐碰到岩浆就会死。
        4.地图中还有很多障碍,使得小乐乐不能到达,但是岩浆却可以把障碍融化。
        5.小乐乐只有走到题目给定的终点才算游戏胜利,才能吃猪。
        小乐乐哪见过这场面,当场就蒙了,就想请帮帮他,告诉他是否能吃猪。

 

解题思路:

一开始用了深度优先搜索,其实是错的。

因为很明显是按步数层次遍历的。

所以 朴素 BFS ,判断是否被熔浆烧死,只需要逆过来判断一下 下一步要走的点(rx, ry)在不在熔浆范围之内。

假设当前走了 len 步, 那么 判断 abs(Fx-rx)+ abs(Fy-ry)是否小于等于 len。

如果是,则说明会被烧到。

 

AC code:

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年11月1日
下一篇 2018年11月1日

相关推荐