計蒜客一維座標的移動

2022-05-13 07:51:12 字數 915 閱讀 9437

在乙個長度為 nn 的座標軸上,蒜頭君想從 aa 點 移動到 bb 點。他的移動規則如下:

向前一步,座標增加 11。

向後一步,座標減少 11。

跳躍一步,使得座標乘 22。

蒜頭君不能移動到座標小於 00 或大於 nn 的位置。蒜頭想知道從 aa 點移動到 bb 點的最少步數是多少,你能幫他計算出來麼?

第一行輸入三個整數 nn,aa,bb,分別代表座標軸長度,起始點座標,終點座標。(0 \le a, b \le n \le 50000≤a,b≤n≤5000)

輸出乙個整數佔一行,代表蒜頭要走的最少步數。

樣例輸入

10 2 7

樣例輸出

3

解析因為只需要最短路徑,考慮bfs,找出最短路即可

#includeusing

namespace

std;

queue

xx;int n,a,b;//

座標軸長度,起點,終點

int record[5005

];int changex[5]=;

intmain()

else newx=nowx+changex[i];

if(newx>n||newx<1) continue;//

注意要先判斷是否越界

if(record[newx]!=0) continue

;

if(newx==a) continue

; record[newx]=record[nowx]+1

; xx.push(newx);}}

cout

return0;

}

一維座標的移動

在乙個長度為 n的座標軸上,蒜頭君想從 a 點 移動到 b 點。他的移動規則如下 向前一步,座標增加 1。向後一步,座標減少 1 跳躍一步,使得座標乘 2 蒜頭君不能移動到座標小於 0 或大於 n 的位置。蒜頭想知道從 a 點移動到 b 點的最少步數是多少,你能幫他計算出來麼?輸入格式 第一行輸入三...

一維座標的移動

在乙個長度為 n 的座標軸上,蒜頭君想從 a 點 移動到 b 點。他的移動規則如下 向前一步,座標增加 1。向後一步,座標減少 1。跳躍一步,使得座標乘 2。蒜頭君不能移動到座標小於 0 或大於 n 的位置。蒜頭想知道從 a 點移動到 b 點的最少步數是多少,你能幫他計算出來麼?第一行輸入三個整數 ...

一維座標的移動

在乙個長度為 nn 的座標軸上,蒜頭君想從 aa 點 移動到 bb 點。他的移動規則如下 向前一步,座標增加 1。向後一步,座標減少 1。跳躍一步,使得座標乘 2。蒜頭君不能移動到座標小於 0 或大於 n 的位置。蒜頭想知道從 aa 點移動到 bb 點的最少步數是多少,你能幫他計算出來麼?輸入格式 ...