農夫知道一頭牛的位置,想要抓住它。農夫和牛都於數軸上 ,農夫起始位於點 n(0<=n<=100000) ,牛位於點 k(0<=k<=100000) 。農夫有兩種移動方式: 1、從 x移動到 x-1或x+1 ,每次移動花費一分鐘 2、從 x移動到 2*x ,每次移動花費一分鐘 假設牛沒有意識到農夫的行動,站在原地不動。最少要花多少時間才能抓住牛?
input
一行: 以空格分隔的兩個字母: n 和 k
output
一行: 農夫抓住牛需要的最少時間,單位分鐘
sample input
5 17
sample output
4
提示
農夫使用最短時間抓住牛的方案如下: 5-10-9-18-17, 需要4分鐘.
解題**:
#include#include#include#include#include#define max_n 100001
using namespace std;
int select[3]; //移動方式
int time[max_n]; //儲存到達對應點的時間,且為0時表示未訪問
int bfs(int n, int k)}}
return time[k]; //返回到達終點時間
}int main()
return 0;
}
感謝你的訪問! 抓住那頭牛(BFS廣搜)
描述 農夫知道一頭牛的位置,想要抓住它。農夫和牛都位於數軸上,農夫起始位於點n 0 n 100000 牛位於點k 0 k 100000 農夫有兩種移動方式 1 從x移動到x 1或x 1,每次移動花費一分鐘 2 從x移動到2 x,每次移動花費一分鐘 假設牛沒有意識到農夫的行動,站在原地不動。農夫最少要...
抓住那頭牛
在乙個座標軸上,農夫在n點,牛在k點 假設在整個過程中牛靜止不動 現在農夫可以 1,1,2 的步數,問抓到牛的最小步數 採用stl的queue 第一次使用。include include include using namespace std int n,k const int maxn 10000...
抓住那頭牛
農夫知道一頭牛的位置,想要抓住它。農夫和牛都位於數軸上,農夫起始位於點 nn,牛位於點 kk。農夫有兩種移動方式 從 xx 移動到 x 1x 1 或 x 1x 1,每次移動花費一分鐘 從 xx 移動到 2 x2 x,每次移動花費一分鐘 假設牛沒有意識到農夫的行動,站在原地不動。農夫最少要花多少時間才...