ACM学习心得(5)

广搜进阶:
双向广搜有确定的起点和终点,并且能把从起点到终点的单个搜索,变换为分别从起点出发和从终点出发的“相遇”问题,可以用双向广搜
可以合用一个队列 正向BFS和逆向BFS用同一个队列 适合正反2个BFS平衡的情况 正向搜索和逆向搜索交替进行 两个方向的搜索交替扩展子状态 先后入队 直到两个方向的搜索产生相同的子状态
也可以分成两个队列 正向BFS和逆向BFS的队列分开
hdu 1195 open the lock
打开密码锁。密码由四位数字组成,数字从1到9。可以在任何数字上加上1或减去1,当’9’加1时,数字变为’1’,而’1’减1时,数字变为’9’。相邻的数字可以交换。每个动作是一步。任务是使用最少的步骤来打开锁。注意:最左边的数字不是最右边的数字的邻居。

这个用双向广搜 即2个队列表
还要用到hash去重的方法 其实就是定一个去重数组 不是很复杂
这样的方法会比单向队列快很多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值