操作整數 bfs的優化剪枝

2021-07-11 06:59:42 字數 794 閱讀 7147

現在有兩種操作:將乙個整數*2或者將乙個整數-1;

給你兩個整數a,b 請用以上兩種操作把a轉換成b,要求使用次數盡量少,輸出最少操作次數

輸入包含多組測試資料,對於每組測試資料:

輸入包含一行

第一行:兩個整數a,b

最少操作次數

4 610 129

對於第乙個4 –>3 -> 6 兩步

對於第二個10->9->8->7……->2->1 九步

思路:顯然使用bfs解題,但簡單的bfs會記憶體超限,所以用到優化剪枝。

**:

#include#include#includeusing namespace std;

struct node

;queueq;

int m,n;//you m->n

bool vist[2000000];//這個陣列很棒,搜過的數字沒必要再搜一次了

node s;//開始節點

int bfs()

if(i==1)

if(new.x<0||new.x>2*n||vist[new.x]) continue;

new.step=now.step+1;

q.push(new);

vist[new.x]=true;

if(new.x==n) return new.step;}}

}int main()

}return 0;

}

dfs剪枝的應用以及bfs

奇怪的電梯 題目描述 呵呵,有一天我做了乙個夢,夢見了一種很奇怪的電梯。大樓的每一層樓都可以停電梯,而且第i ii層樓 1 i n 1in 1 i n 電梯只有四個按鈕 開,關,上,下。上下的層數等於當前樓層上的那個數字。當然,如果不能滿足要求,相應的按鈕就會失靈。例如 3,3 1,2 5 3,3,...

決策樹的剪枝操作

決策樹 decision tree 在已知各種情況發生概率的基礎上,通過構成決策樹來求取淨現值的期望值大於等於零的概率,評價專案風險,判斷其可行性的決策分析方法,是直觀運用概率分析的一種 法。由於這種決策分支畫成圖形很像一棵樹的枝幹,故稱決策樹。擬合 所謂擬合是指已知某函式的若干離散函式值,通過調整...

kylin剪枝優化的兩種方式

1.衍生維度。在kylin中,如果某些維度都屬於同一種型別,且數量較多,可以考慮做成衍生維度。衍生維度就是將一批維度做成一張維度表,只在源表中保留這張表的外來鍵,這樣預處理的時候,就只會處理這個外來鍵,而不會去處理維度表中的維度,降低cuboid的數量。衍生維度用於在有效維度內將維度表上的非主鍵維度...