BFS 數字a通過三種操作到數字B

2021-07-04 19:55:27 字數 949 閱讀 5355

大致題意:

給定兩個整數n和k

通過 n+1或n-1 或n*2 這3種操作,使得n==k

輸出最少的操作次數

注意的地方有二:

1、  由於用於廣搜的 佇列陣列 和 標記陣列  相當大,如果定義這兩個陣列時把它們扔到區域性去,編譯是可以的,但肯定執行不了,提交就等re吧= =

大陣列必須開為全域性 。。。常識常識。。。

2、  剪枝。直接廣搜一樣等著re吧= =

不剪枝的同學試試輸入n=0  k=100000。。。。。。鐵定re

怎麼剪枝看我程式

//

memory time

//1292k 0ms

#include

using

namespace

std;

const

int large=200030

;typedef

class

pos;

intn,k;

bool vist[large]; //

陣列較大,必須開為全域性陣列,不然肯定re

pos queue[large];

void bfs(void

)

if(w.x-1>=0 && !vist[w.x-1]) //

w.x-1>=0 是剪枝

if(w.x<=k && !vist[w.x+1]) //

w.x<=k 是剪枝

if(w.x<=k && !vist[2*w.x]) //

w.x<=k 是剪枝

}return;}

int main(void

)

return0;

}

view code

回文數字的三種解法

要求 在不使用額外空間的前提下,判斷乙個數字是否是回文數字,例如12321是回文,1234521不是回文 回文數字的最大特徵就是最後乙個數字和第乙個數字相等,由此可以得出兩個特徵 1 回文數字反轉之後,跟反轉之前的值相等 2 回文數字首尾是對稱的 基於上述兩個特徵,可以衍生下面三個演算法 解法一 將...

python 數字變換的三種方法

numlist1 零 一 二 三 四 五 六 七 八 九 numstr input numlist list numstr for i in range 0 len numstr 最後乙個字元的下標是長度 1 numlist i numlist1 int numstr i c map str num...

MySQL數字型別中的三種常用種類

我們今天主要向大家介紹的是mysql資料庫的mysql資料型別與其建庫的實際策略的描述,以下就是文章的具體內容的描述。以下的文章主要講述的是mysql數字型別的三種常用種類,我們大家都知道,不管是微小免費的mysql資料庫空間,還是比較大型的電子商務 對於相關的資料庫來說其合理的相關設計表結構 充分...