问题标题: 酷町堂:3806魔塔,麻烦各位大佬给BFS

0
0
已解决
项依凡
项依凡
初级光能
初级光能

有一个魔塔,这座塔一共有n层,现在有一个勇士处在魔塔的第1层。借助魔法的力量,勇士每次可以选择上升1层,下降1层,或者选择到达现在所在的层数乘2的那一层。勇士想去第m层找他的一个朋友询问非常重要的问题,请问他最少要使用多少次魔法才能到达第m层。


3
已采纳
储维
储维
中级光能
中级光能

BFS肯定会超时的

这一题和以前模拟考试的3315题是刚好反过来的,思路完全一样,是一道贪心题。

储维在2018-12-23 17:18:49追加了内容

m<10000的话不会超时

储维在2018-12-23 17:27:11追加了内容

BFS的话:

需要用一个数组记录一下到达每一层需要的最少次数,开始时把每个元素设置成很大的数。

然后需要一个队列,先把第一层次数设为0并入队。

接下来开始,依次对队列的每个元素,都会有+1,-1,*2三个方向,判断是否能减小到达这三个方向对应层数的最少次数,如果能,就更新次数,把对应的层加入队列中。

 

0
我要回答