[USACO12OPEN]Unlocking Block【BFS / 广搜】

本文详细介绍了USACO竞赛中的一道题目,通过使用BFS(广度优先搜索)策略解决。作者指出,问题的关键在于优化存储和判断已搜索状态,利用哈希技巧避免MLE(内存限制错误)。在处理过程中,只存储模块的代表点,通过集合来判断是否重复,并给出了解决方案的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Pro

Luogu3053

Sol

真的只是一个 BFS B F S !!!一个氧气都救不了的程序(快读+快写还 TLE T L E 了一个点)

大体思路:对于每一种状态,我们枚举三个模块是否可以向左向右向上向下移动,如果可以移动,入队,继续搜索,队列中存整张图。处理方法:对于队列中的图,不需要每一个点都存储。在输入的时候,我们可以根据点之间的相对位置求出这个模块的形状,存起来,这样队列中只需要对每一个模块存一个位置就可以,我们把这个位置叫做模块的代表点,这样就能推出其他的位置。

关键的地方在于如何判断是否已经入过队。用集合配合类似哈希来处理,因为我们存储的只有三个点,六个值,第一感觉就是六维数组,然而六维数组会 M

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值