题目描述
农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式:
1、从X移动到X-1或X+1,每次移动花费一分钟
2、从X移动到2*X,每次移动花费一分钟
假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?
输入格式
两个整数,N和K输出格式
一个整数,农夫抓到牛所要花费的最小分钟数
样例
样例1输入
5 17
样例1输出
4样例2输入
5 12
样例2输出
2
算法分析
这一题第一感觉是贪心,但是用贪心做一定会错,因为贪心只是当前的最佳无法达到整体最佳,所以用到搜索。
而这一题搜索一共有三个方向+1,-1,*2
每一层挨个寻找,找到就输出退出,没有就更新a,在进入下一层。
代码
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using