寬搜 A 按鈕

2021-08-15 22:16:11 字數 1159 閱讀 3914

vasya 發現了乙個奇怪的裝置。在裝置的前面板上,有乙個紅色按鈕、乙個藍色按鈕和乙個顯示了某個正整數的螢幕。在按下紅色按鈕之後,裝置將顯示的數字乘以 2。在按下藍色按鈕之後,裝置將顯示的數字減去 1。如果在某時刻,數字不再是正數,則裝置終止執行。顯示螢幕可以顯示任意大的數字。初始狀態下,顯示螢幕顯示了數字 n

。bob 想要在顯示螢幕上得到數字 m

。為了獲得這個結果,他最小需要按下多少次按鈕?

輸入輸入的第一行 (也是唯一的一行),包含了兩個不同的整數 n

和 m(1 ≤ n, m ≤ 104

),以空格間隔。

輸出列印僅有的乙個數字 — 為了從數字 n

得到數字 m

,必須最少按下多少次按鈕。

示例輸入

4 6

輸出

2

輸入

10 1

輸出

9

題解 : 進行乙個很裸的bfs就可以了

#include

#include

#include

using

namespace

std;

int n,m;

struct fun;

int b[1000000];

queue

qq;long

long

bfs(int v)

qq.pop();

for(int i=0;i<2;i++)

if(i==1)

if(b[p]==0&&p>0&&p<=2*m)

} }}int

main

() while(!qq.empty())

long

long h=0;

// while(m/2>n)

// h-=1;

// n/=2;

// printf("%d\n",n);

h+=bfs(n);

printf("%lld\n",h);

return0;}

寬搜 走出迷宮

描述 當你站在乙個迷宮裡的時候,往往會被錯綜複雜的道路弄得失去方向感,如果你能得到迷宮地圖,事情就會變得非常簡單。假設你已經得到了乙個n m的迷宮的圖紙,請你找出從起點到出口的最短路。輸入第一行是兩個整數n和m 1 n,m 100 表示迷宮的行數和列數。接下來n行,每行乙個長為m的字串,表示整個迷宮...

寬搜入門 魔板

在成功地發明了魔方之後,魯比克先生發明了它的二維版本,稱作魔板。這是一張有8個大小相同的格仔的魔板 1 2 3 4 8 7 6 5 我們知道魔板的每乙個方格都有一種顏色。這8種顏色用前8個正整數來表示。可以用顏色的序列來表示一種魔板狀態,規定從魔板的左上角開始,沿順時針方向依次取出整數,構成乙個顏色...

演算法 迷宮問題(寬搜)

bfs不同於dfs,它不需要用到顯式的遞迴操作,而是將狀態儲存在佇列中,可以用來求權值為1的最短路。每次都將隊首的元素取出,然後將可以由這個元素經過一步操作達到的放入隊尾。在最短路問題中只要到達過的節點,之後就不會再到達。給定乙個n m的二維整數陣列,用來表示乙個迷宮,陣列中只包含0或1,其中0表示...