傳送門:洛谷 p1588 丟失的牛
懶得再解釋了,簡單bfs,下面是蒟蒻**:
#include//萬能頭
using
namespace
std;
int i,j,k,m,n,f[200005];
queue
q;//佇列
int main()
for(i=0;i<=m*2;i++)//避免*2後的**
f[i]=-1;//記錄沒有到達過
q.push(n),f[n]=0;//佇列中壓入n,並將到達n的步數設定為0
while(!q.empty())
if(x*2
<=200000&&f[x*2]==-1)//沒有越界且沒有到達過
q.push(x*2),f[x*2]=f[x]+1;//壓入,標記步數
if(x+1
<=200000&&f[x+1]==-1)//沒有越界且沒有到達過
q.push(x+1),f[x+1]=f[x]+1;//壓入,標記步數
if(x-1>0&&f[x-1]==-1)//沒有越界且沒有到達過
q.push(x-1),f[x-1]=f[x]+1;//壓入,標記步數
}return
0;//好孩子不忘return 0
}
P1588 丟失的牛 AC於2018 9 16
fj丟失了他的一頭牛,他決定追回他的牛。已知fj和牛在一條直線上,初始位置分別為x和y,假定牛在原地不動。fj的行走方式很特別 他每一次可以前進一步 後退一步或者直接走到2 x的位置。計算他至少需要幾步追上他的牛。輸入格式 第一行為乙個整數t 10 表示資料組數 接下來每行包含乙個兩個正整數x和y ...
luogu1588 丟失的牛
時空限制 1000ms 128mb fj丟失了他的一頭牛,他決定追回他的牛。已知fj和牛在一條直線上,初始位置分別為x和y,假定牛在原地不動。fj的行走方式很特別 他每一次可以前進一步 後退一步或者直接走到2 x的位置。計算他至少需要幾步追上他的牛。輸入格式 第一行為乙個整數t 10 表示資料組數 ...
Luogu P1588 丟失的牛
本題抽象一下就是從乙個點出發,然後經過座標x2或 1或 1到另乙個點。顯然這就是乙個搜尋題,而且顯然可以看出步數最多就是兩個點座標之差。但是資料範圍105,直接暴搜肯定要麼mle要麼tle,肯定不行,一定要加上優化。我們注意到座標的範圍是 0,105 那麼如果乙個點擴充套件到了這個範圍之外顯然就不可...