C 抓住那頭牛 解題思路

2022-10-09 06:24:09 字數 965 閱讀 1910

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

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

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

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

兩個整數,n和k

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

5 17
4
這道題是一道純度極高又經典的bfs,

看到這還不知道什麼是bfs?

c++-bfs 廣搜的含義 - 馮子坤 - (cnblogs.com)

農夫在每個點都有三條路可以選擇,即類似於:在每乙個結點都有三個相鄰的結點。現在需要最短時間找到牛,所以用廣搜是比較容易解決的。關鍵是要理清楚資料結構的問題。

因此,我們需要……無中生有暗度陳倉……生成乙個陣列,濱並將第乙個設定為1(及走過的)

總之下來,這道題有點類似短路問題,確實bfs之中的精髓。

:很簡單的~

抓住那頭牛

在乙個座標軸上,農夫在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,每次移動花費一分鐘 假設牛沒有意識到農夫的行動,站在原地不動。農夫最少要花多少時間才...

抓住那頭牛

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