題目:
農夫知道一頭牛的位置,想要抓住它。農夫和牛都位於數軸上,農夫起始位於點n(0<=n<=100000),牛位於點k(0<=k<=100000)。農夫有兩種移動方式:
1、從x移動到x-1或x+1,每次移動花費一分鐘
2、從x移動到2*x,每次移動花費一分鐘
假設牛沒有意識到農夫的行動,站在原地不動。農夫最少要花多少時間才能抓住牛?
輸入
兩個整數,n和k
輸出
乙個整數,農夫抓到牛所要花費的最小分鐘數
樣例輸入
5 17
樣例輸出
4這是乙個典型的廣度優先搜尋演算法,用佇列來一層一層解決問題
#include
#include
#include
using
namespace std;
int n,k;
const
int maxn=
100000
;int visited[maxn+10]
;struct step};
queue q;
//佇列,即open表
intmain()
else
if(s.x+
1<=maxn&&
!visited[s.x+1]
)if(s.x*
2<=maxn&&
!visited[s.x*2]
) q.
pop();
}}return0;
}
廣度優先搜尋 入門 抓住那頭牛
農夫知道一頭牛的位置,想要抓住它。農夫和牛都位於數軸上 農夫起始位於點n 0 n 100000 牛位於點k 0 k 100000 農夫有兩種移動方式 1 從x移動到x 1或x 1,每次移動花費一分鐘 2 從x移動到2 x,每次移動花費一分鐘 假設牛沒有意識到農夫的行動,站在原地不動。農夫最少要 花多...
廣度優先搜尋 抓住那頭牛(poj 3278)
描述 農夫知道一頭牛的位置,想要抓住它。農夫和牛都位於數軸上,農夫起始位於點n 0 n 100000 牛位於點k 0 k 100000 農夫有兩種移動方式 1 從x移動到x 1或x 1,每次移動花費一分鐘 2 從x移動到2 x,每次移動花費一分鐘 假設牛沒有意識到農夫的行動,站在原地不動。農夫最少要...
基礎演算法 深度優先搜尋DFS與廣度優先搜尋BFS
深搜 depth first search 和廣搜 breadth first search 是兩種基本搜尋演算法,均採用窮舉策略 下面以老鼠走迷宮 maze.cpp 為例給出它們的模板 問題描述 乙隻老鼠從迷宮的左上角走到右下角 如下圖 中間不能穿越障礙 陰影部分 任務 給出迷宮的形狀,請你求出老...