3060 抓住那头奶牛 USACO
时间限制: 1 s
空间限制: 16000 KB
题目等级 : 黄金 Gold
题解
题目描述 Description
农夫约翰被告知一头逃跑奶牛的位置,想要立即抓住它,他开始在数轴的N 点(0≤N≤100000),奶牛在同一个数轴的K 点(0≤K≤100000)。约翰有两种移动方式:1 分钟内从x 点移动到x+1 或x-1;1 分钟内从x 点移动到2x。假设奶牛不会移动,约翰抓住它需要多少时间?
输入描述 Input Description
一行两个整数N 和K,用空格隔开。
输出描述 Output Description
约翰抓住它需要的最少时间。
样例输入 Sample Input
5 17
样例输出 Sample Output
4
思路:
BFS + 队列
每到下一个的点 就把三种情况执行一次 更新状态 将所有可能状态入队
因为BFS按层遍历的性质,第一次访问到答案的时候一定是最优的
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>