在乙個長度為 n的座標軸上,蒜頭君想從 a 點 移動到 b 點。他的移動規則如下:
向前一步,座標增加 1。
向後一步,座標減少 1
跳躍一步,使得座標乘 2
蒜頭君不能移動到座標小於 0 或大於 n 的位置。蒜頭想知道從 a 點移動到 b 點的最少步數是多少,你能幫他計算出來麼?
輸入格式
第一行輸入三個整數 n,a,b,分別代表座標軸長度,起始點座標,終點座標。(0≤a,b≤n≤5000)
輸出格式
輸出乙個整數佔一行,代表蒜頭要走的最少步數。
樣例輸入
10 2 7
樣例輸出
這題還是比較簡單的,用廣度優先搜尋就可以了
#include
#include "queue"
using
namespace
std;
long vis[5001]=;
long tx,ty;
long min=0;
long
long n,a,b;
struct point
};int bfs(int sx);
while (!q.empty()) else
if (tx<0 ||tx>n)continue;
if (p.x==b)
if (vis[tx]==0) }}
return -1;
}int main()
}
一維座標的移動
在乙個長度為 n 的座標軸上,蒜頭君想從 a 點 移動到 b 點。他的移動規則如下 向前一步,座標增加 1。向後一步,座標減少 1。跳躍一步,使得座標乘 2。蒜頭君不能移動到座標小於 0 或大於 n 的位置。蒜頭想知道從 a 點移動到 b 點的最少步數是多少,你能幫他計算出來麼?第一行輸入三個整數 ...
一維座標的移動
在乙個長度為 nn 的座標軸上,蒜頭君想從 aa 點 移動到 bb 點。他的移動規則如下 向前一步,座標增加 1。向後一步,座標減少 1。跳躍一步,使得座標乘 2。蒜頭君不能移動到座標小於 0 或大於 n 的位置。蒜頭想知道從 aa 點移動到 bb 點的最少步數是多少,你能幫他計算出來麼?輸入格式 ...
計蒜客一維座標的移動
在乙個長度為 nn 的座標軸上,蒜頭君想從 aa 點 移動到 bb 點。他的移動規則如下 向前一步,座標增加 11。向後一步,座標減少 11。跳躍一步,使得座標乘 22。蒜頭君不能移動到座標小於 00 或大於 nn 的位置。蒜頭想知道從 aa 點移動到 bb 點的最少步數是多少,你能幫他計算出來麼?...