求x到y的最少計算次數 (BFS)

2022-07-12 09:39:10 字數 929 閱讀 9241

時間限制:1秒

空間限制:262144k

給定兩個-100到100的整數x和y,對x只能進行加1,減1,乘2操作,問最少對x進行幾次操作能得到y?

例如:a=3,b=11: 可以通過3*2*2-1,3次操作得到11;

a=5,b=8:可以通過(5-1)*2,2次操作得到8;

輸入描述:

輸入以英文逗號分隔的兩個數字,數字均在32位整數範圍內。

輸出描述:

輸出乙個數字

輸入例子1:

3,11

輸出例子1:

3

思路:廣度優先搜尋。(佇列實現)

1 #include 2 #include 3 #include 4

using

namespace

std;56

intmain() else26}

27if

(flag)

28break

;29 cnt++;30}

31 cout << cnt <32return0;

33 }

1 #include 2 #include 3 #include 4

using

namespace

std;56

intmain() );

11q.push(tmp);

1213

while (!q.empty()) else

);21 q.push();

22 q.push();23}

24}25return0;

26 }

BFS最短路徑(求x到y的最少計算次數)

給定兩個 100到100的整數x和y,對x只能進行加1,減1,乘2操作,問最少對x進行幾次操作能得到y?例如 a 3,b 11 可以通過3 2 2 1,3次操作得到11 a 5,b 8 可以通過 5 1 2,2次操作得到8 輸入描述 輸入以英文逗號分隔的兩個數字,數字均在32位整數範圍內。輸出描述 ...

2024 求X到Y之間的整數和

time limit 3 second memory limit 2 mb 計算x到y之間的整數和 要求用函式實現 注意輸入時x不一定小於y,且x y不一定都是整數。兩行,第一行為x,第二行為y。一行,x與y之間的整數和 8.512.542 題解 這個處理有點麻煩。先獲取兩個數的整數部分 用int ...

從快手筆試題x到y的次數看bfs解題技巧

給定兩個 100到100的整數x和y,對x只能進行加1,減1,乘2操作,問最少對x進行幾次操作能得到y?例如 a 3,b 11 可以通過322 1,3次操作得到11 a 5,b 8 可以通過 5 1 2,2次操作得到8 我們可以這樣來解這道題,計算出從a一步操作能夠得到幾,兩步操作能夠得到幾,三步操...