ZOJ 1649 - Rescue BFS/优先队列

博客内容讲述了在ZOJ 1649救援问题中遇到的WA错误,重点在于处理Angel的朋友可能有多个以及guard对广度优先搜索(BFS)的影响。解决办法包括使用BFS时同步更新guard的状态,并重新入队以保持队列同步;另一种方法是利用优先队列,根据costTime排序,确保guard总是在成本高的点之后处理。
摘要由CSDN通过智能技术生成

在HDOJ上提交通过以后,再在zoj上提交,结果得到了无数个WA,后来发现有一种情况我并没有考虑到


 有几个关键的地方需要注意:

1. Angel的朋友不只有一个,可能有多个

2. guard的存在可能会破坏广度优先树


解决办法:

BFS的做法:必须要保存guard与可行点‘.’的插入同步,因为guard的costTime不同,应该先不改变其坐标,costTime增加一以后,设为已被访问,‘x’变为‘.’或者‘#’,重新入队,此时,guard已被插入到队列的尾部,这样一来,guard与‘.’就可以同步了

 #include <math.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <memory.h>
 
 char maze[210][210];
 int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值