双向BFS&Meet in the Middle算法总结

本文总结了双向BFS和Meet in the Middle算法。双向BFS在限定步数问题中能显著减少搜索状态数,如POJ1198中,通过双向BFS将状态数从168降至69632。Meet in the Middle是深搜技巧,通过分治降低枚举复杂度,如在POJ1903中应用。实施时需注意状态同步和合并效率。
摘要由CSDN通过智能技术生成

前言:

尽管搜索题在难度高的比赛中都不是重要考点,但作为骗分的一大技巧,无论多强的选手,都仍然无法忽视搜索的重要性。并且,有些高难度比赛中,一些带一定技巧的搜索题,很有可能会放在签到题的位置上。这些题全场都会做,但正因如此,所有人都会毫不犹豫地先写这道题,如果在这道题上花的时间过多,对后面的难题将造成不可估量的影响。

总之,练好搜索是绝对必要的。

双向BFS

传统的BFS是从起点出发,一直搜到终点为止,而双向BFS则是从起点和终点同时出发,搜到两者的某些状态相遇为止。
在一些限定行走步数的问题中,双向BFS往往是非常有效的一种方式。
例如:POJ1198Solitaire
这道题中,要求最多走8步,考虑每一步可以转移的情况,总共有16种,总的状态数就会有 168=4294967296 16 8 = 4294967296 种(当然,这道题中,由于棋盘的限制,最多应该仅有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值