传送门: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进行处理,非常感谢!