如下面第乙個圖的九宮格中,放著 1~8 的數字卡片,還有乙個格仔空著。與空格子相鄰的格仔中的卡片可以移動到空格中。經過若干次移動,可以形成第二個圖所示的局面。題目要求的是 求起始狀態轉移到最終狀態最少的步數,並且涉及迷宮問題。這類求迷宮最優解,我第一反應就是廣搜,廢話不多說,上code。我們把第乙個圖的局面記為:12345678.
輸入輸入第一行包含九宮的初態,第二行包含九宮的終態。
輸出輸出最少的步數,如果不存在方案,則輸出-1。
樣例輸入
12345678.樣例輸出123.46758
3
//單向bfs**執行結果截#include
using namespace std;
#include
#include
#include
struct node
;string last;//終點狀態
queuep;
setvis;//判重
int dx[4] = ;//四個方向拓展
int dy[4] = ;
void bfs()
//找到 head.origin中'.'的位置
int pos;
for(int i=0;i
} int x = pos/3;
int y = pos%3;//將string物件origin模擬地轉化為3*3的字元陣列,方便判斷是否出界
for(int i=0;i<4;i++)//四個方向拓展} }
}cout<
int main()
題記 BFS 九宮重排 藍橋杯
如下面第乙個圖的九宮格中,放著 1 8 的數字卡片,還有乙個格仔空著。與空格子相鄰的格仔中的卡片可以移動到空格中。經過若干次移動,可以形成第二個圖所示的局面。我們把第乙個圖的局面記為 12345678.把第二個圖的局面記為 123.46758 顯然是按從上到下,從左到右的順序記錄數字,空格記為句點。...
藍橋杯 九宮重排
九宮重排 如下面第乙個圖的九宮格中,放著 1 8 的數字卡片,還有乙個格仔空著。與空格子相鄰的格仔中的卡片可以移動到空格中。經過若干次移動,可以形成第二個圖所示的局面。我們把第乙個圖的局面記為 12345678.把第二個圖的局面記為 123.46758 顯然是按從上到下,從左到右的順序記錄數字,空格...
bfs 藍橋杯 歷屆試題 九宮重排
如下面第乙個圖的九宮格中,放著 1 8 的數字卡片,還有乙個格仔空著。與空格子相鄰的格仔中的卡片可以移動到空格中。經過若干次移動,可以形成第二個圖所示的局面。我們把第乙個圖的局面記為 12345678.把第二個圖的局面記為 123.46758 顯然是按從上到下,從左到右的順序記錄數字,空格記為句點。...