抓牛 农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式: 1、从X移动到X-1或X+1,每次移动花费一分钟 2、从X移动到2*X,每次移动花费一分钟 假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛? 时间限制:2000 内存限制:65536 输入 两个整数,N和K 输出 一个整数,农夫抓到牛所要花费的最小分钟数 样例输入 5 17 样例输出 4
正确答案:参考程序(C++):抓牛BFS。从N到K,操作-1,+1,*2,BFS求最短步数。样例5→17:5-6-12-24?实际5-10-9-18-17=4步→4。核心:BFS最短路。
试卷来源:202109 青少年等级考试C/C++真题五级