廣搜 移動棋盤 二進位制

2021-10-10 02:23:47 字數 1252 閱讀 7009

題目描述

在乙個4*4的棋盤上有8個黑棋和 8個白棋,當且僅當兩個格仔有公共邊,這兩個格仔上的棋是相鄰的。移動棋子的規則是交換相鄰兩個棋子。

給出乙個初始棋盤和乙個最終棋盤,請找出乙個最短的移動串行使初始棋盤變為最終棋盤。

輸入格式

前四行,每行 4個數字( 1或者0 ),描述了初始棋盤;

接著是乙個空行;

第六到第九行,每行4個數字(1 或者0 ),描述了最終棋盤。

輸出格式

輸出檔案的第一行是乙個整數 ,表示最少的移動步數。

樣例樣例輸入

1111

0000

1110

0010

1010

0101

1010

0101

樣例輸出

4題解:

用二進位制來寫,廣搜,先把初始值,終值轉換,經過轉換,初始值變為

1111000011100010,終值變為1010010110100101,通過對比上下,左右,不同的數交換,直到與末狀態相同為止

```cpp

#include

#include

#include

#include

using

namespace std;

struct ti

a,s;

int ans1,ans2,book[

99999999];

intbfs()

//廣搜}if

(s.sum==ans2)

return s.b+1;

if(y<

3&&w1!=w3)

//左右判斷}if

(s.sum==ans2)

return s.b;

} q.

pop();

//第乙個數已經搜尋完畢,彈出

a=q.

front()

;}}int

main()

for(i=

15;i>=

0;i--

) u=15;

for(i=

0;i<

4;i++

)for

(i=15

;i>=

0;i--

)printf

("%d\n"

,bfs()

);return0;

}

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

判斷二進位製半整數(二進位制)

10年後,tokitsukaze大佬已經變成了年收入超百萬的的精英程式設計師,家裡沒錢也沒礦的teitoku,找tokitsukaze大佬借1000塊錢,然後tokitsukaze大佬說,借你1024吧,湊個整數。沒錯在2進製下1024是 二進位制整數 乙個正整數滿足其值為2的k次方 k為正整數 我...

mysql二進位制 MySql二進位制連線方式詳解

使用mysql二進位制方式連線 您可以使用mysql二進位制方式進入到mysql命令提示符下來連線mysql資料庫。例項以下是從命令列中連線mysql伺服器的簡單例項 root host mysql u root p enter password 在登入成功後會出現 mysql 命令提示視窗,你可以...