【C++实现】五大常用算法之二(上):BFS算法(实例:接金币)

本文介绍了C++实现广度优先搜索(BFS)算法,并通过一个接金币的问题实例来阐述解题思路。核心代码部分展示了如何进行BFS搜索,以及如何动态分配dp数组来找到到达每个位置的最大金币数。为了避免重复计算,文章中提到如果某个结点已入队,则不再加入。
摘要由CSDN通过智能技术生成

小赛非常喜欢玩游戏,最近喜欢上了一个接金币的游戏。在游戏中,使用帽子左右移动接金币,金币接的越多越好,但是金币掉到地上就不能再接了。为了方便问题的描述,我们把电脑屏幕分成11格,帽子每次能左右移动一格。现在给电脑屏幕如图标上坐标:


也就是说在游戏里,金币都掉落在0-10这11个位置。开始时帽子刚开始在5这个位置,因此在第一秒,帽子只能接到4,5,6这三个位置中其中一个位置上的金币。问小赛在游戏中最多可能接到多少个金币?(假设帽子可以容纳无穷多个金币)。

题目出处:http://exercise.acmcoder.com/online/online_judge_ques?ques_id=3009&konwledgeId=134

BFS即广度优先搜索,搜索的是图,从当前结点开始,搜索与当前结点距离为k的下一个结点,直到把距离为k的结点搜索完毕,再搜索距离为k+k的所有结点

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值