抓住那頭牛(BFS廣搜)

2021-10-03 18:36:51 字數 760 閱讀 6273

描述

農夫知道一頭牛的位置,想要抓住它。農夫和牛都位於數軸上,農夫起始位於點n(0≤n≤100000),牛位於點k(0≤k≤100000)。農夫有兩種移動方式:

1、從x移動到x-1或x+1,每次移動花費一分鐘

2、從x移動到2*x,每次移動花費一分鐘

假設牛沒有意識到農夫的行動,站在原地不動。農夫最少要花多少時間才能抓住牛?

格式輸入格式

兩個整數,n和k。

輸出格式

乙個整數,農夫抓到牛所要花費的最小分鐘數。

樣例輸入樣例

5 17
輸出樣例

4
限制

時間限制:1000 ms

記憶體限制:65536 kb

廣搜,例如樹的層次排序,一層一層的去搜。深搜,一條路走到底

#include #include #include using namespace std;

void bfs(int n, int k)

step[0] = cur * 2;

step[1] = cur + 1;

step[2] = cur - 1;

for (int i=0; i<3; i++)

} }printf ("%d\n", visit[k]);

}int main()

抓住那頭牛(廣搜)

描述 農夫知道一頭牛的位置,想要抓住它。農夫和牛都位於數軸上,農夫起始位於點n 0 n 100000 牛位於點k 0 k 100000 農夫有兩種移動方式 1 從x移動到x 1或x 1,每次移動花費一分鐘 2 從x移動到2 x,每次移動花費一分鐘 假設牛沒有意識到農夫的行動,站在原地不動。農夫最少要...

抓住那頭牛(棧與佇列)(廣搜)

描述 農夫知道一頭牛的位置,想要抓住它。農夫和牛都位於數軸上,農夫起始位於點n 0 n 100000 牛位於點k 0 k 100000 農夫有兩種移動方式 1 從x移動到x 1或x 1,每次移動花費一分鐘 2 從x移動到2 x,每次移動花費一分鐘 假設牛沒有意識到農夫的行動,站在原地不動。農夫最少要...

抓住那頭牛bfs練習

農夫知道一頭牛的位置,想要抓住它。農夫和牛都於數軸上 農夫起始位於點 n 0 n 100000 牛位於點 k 0 k 100000 農夫有兩種移動方式 1 從 x移動到 x 1或x 1 每次移動花費一分鐘 2 從 x移動到 2 x 每次移動花費一分鐘 假設牛沒有意識到農夫的行動,站在原地不動。最少要...