抓住那頭牛bfs練習

2021-10-02 17:30:46 字數 811 閱讀 4736

農夫知道一頭牛的位置,想要抓住它。農夫和牛都於數軸上 ,農夫起始位於點 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,每次移動花費一分鐘 假設牛沒有意識到農夫的行動,站在原地不動。農夫最少要花多少時間才...