題目描述
在乙個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 命令提示視窗,你可以...