問題 1426: [藍橋杯][歷屆試題]九宮重排
時間限制: 1sec 記憶體限制: 128mb 提交: 215 解決: 47
題目描述
如下面第乙個圖的九宮格中,放著 1~8 的數字卡片,還有乙個格仔空著。與空格子相鄰的格仔中的卡片可以移動到空格中。經過若干次移動,可以形成第二個圖所示的局面。
我們把第乙個圖的局面記為:12345678.
把第二個圖的局面記為:123.46758
顯然是按從上到下,從左到右的順序記錄數字,空格記為句點。
本題目的任務是已知九宮的初態和終態,求最少經過多少步的移動可以到達。如果無論多少步都無法到達,則輸出-1。
輸入輸入第一行包含九宮的初態,第二行包含九宮的終態。
輸出輸出最少的步數,如果不存在方案,則輸出-1。
樣例輸入
12345678.
123.46758
樣例輸出
#include3
實現**如下:實現**如下:
(我用了string來記錄已經出現過的排列情況,應該用其它方法儲存速度會更快)
(我用了string來記錄已經出現過的排列情況,應該用其它方法儲存速度會更快)
#include
#include
using namespace std;
int main()
;int pos=0;
string beg,des;
cin>>beg>>des;
if(beg==des)
s.insert(beg);int dalta[4]=;
arr[front]=beg;
while(front<=rear)
}c=beg[pos];beg[pos]=beg[p];beg[p]=c;
}front++;
}cout<
}
BFS解決九宮重排問題
問題 1426 藍橋杯 歷屆試題 九宮重排 時間限制 1sec 記憶體限制 128mb 提交 215 解決 47 題目描述 如下面第乙個圖的九宮格中,放著 1 8 的數字卡片,還有乙個格仔空著。與空格子相鄰的格仔中的卡片可以移動到空格中。經過若干次移動,可以形成第二個圖所示的局面。我們把第乙個圖的局...
BFS解決九宮重排問題
問題 1426 藍橋杯 歷屆試題 九宮重排 時間限制 1sec 記憶體限制 128mb 提交 215 解決 47 題目描述 如下面第乙個圖的九宮格中,放著 1 8 的數字卡片,還有乙個格仔空著。與空格子相鄰的格仔中的卡片可以移動到空格中。經過若干次移動,可以形成第二個圖所示的局面。我們把第乙個圖的局...
題記 BFS 九宮重排 藍橋杯
如下面第乙個圖的九宮格中,放著 1 8 的數字卡片,還有乙個格仔空著。與空格子相鄰的格仔中的卡片可以移動到空格中。經過若干次移動,可以形成第二個圖所示的局面。我們把第乙個圖的局面記為 12345678.把第二個圖的局面記為 123.46758 顯然是按從上到下,從左到右的順序記錄數字,空格記為句點。...