牛客網 趕上那頭牛 bfs

2021-09-25 01:34:17 字數 770 閱讀 5055

題目大意:

思路:開始想的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,每次移動花費一分鐘 假設牛沒有意識到農夫的行動,站在原地不動。農夫最少要...