題目大意:
思路:開始想的dfs發現複雜度很高,並且會重複訪問乙個位置,這種最少步數的適合bfs,o(n)的複雜度。訪問的點不能再訪問。
#include
#define ll long long
using
namespace std;
int vis[
200010];
intok
(pair<
int,
int> now)
return1;
}queue
int,
int>
> q;
intdfs
(int n,
int k));
vis[n]=1
;while
(!q.
empty()
) pair<
int,
int> t;
t.first=now.first+1;
t.second=now.second+1;
if(ok(t)
) t.first=now.first-1;
if(ok(t)
) t.first=now.first*2;
if(ok(t))}
}int
main()
抓住那頭牛bfs練習
農夫知道一頭牛的位置,想要抓住它。農夫和牛都於數軸上 農夫起始位於點 n 0 n 100000 牛位於點 k 0 k 100000 農夫有兩種移動方式 1 從 x移動到 x 1或x 1 每次移動花費一分鐘 2 從 x移動到 2 x 每次移動花費一分鐘 假設牛沒有意識到農夫的行動,站在原地不動。最少要...
牛客網 棋盤遊戲 bfs
有乙個6 6的棋盤,每個棋盤上都有乙個數值,現在又乙個起始位置和終止位置,請找出乙個從起始位置到終止位置代價最小的路徑 1 只能沿上下左右四個方向移動 2 總代價是沒走一步的代價之和 3 每步 從a,b到c,d 的代價是c,d上的值與其在a,b上的狀態的乘積 4 初始狀態為1 每走一步,狀態按如下公...
抓住那頭牛(BFS廣搜)
描述 農夫知道一頭牛的位置,想要抓住它。農夫和牛都位於數軸上,農夫起始位於點n 0 n 100000 牛位於點k 0 k 100000 農夫有兩種移動方式 1 從x移動到x 1或x 1,每次移動花費一分鐘 2 從x移動到2 x,每次移動花費一分鐘 假設牛沒有意識到農夫的行動,站在原地不動。農夫最少要...