你玩過華容道的遊戲嗎?這是個類似的,但更簡單的遊戲。看下面 3 x 2 的格仔
±–±--±–+
| a | * | * |
±–±--±–+
| b | | * |
±–±--±–+
在其中放5張牌,其中a代表關羽,b代表張飛,* 代表士兵。還有乙個格仔是空著的。
你可以把一張牌移動到相鄰的空格中去(對角不算相鄰)。
遊戲的目標是:關羽和張飛交換位置,其它的牌隨便在**都可以。
輸入輸入存在多組測試資料,對於每組測試資料:
輸入兩行6個字元表示當前的局面
輸出對於每組測試資料輸出乙個整數表示答案:
樣例輸入
*a**b
a b樣例輸出
1312
沒什麼好說的 見最小和最短知bfs,額bfs是佇列(fifo表)dfs是棧(lifo)(其實我是不懂什麼意思)
題解:1、因為棋盤只有兩行,可以把他處理成一行處理(bfs的時候方便標記這個棋盤狀態),注意隔離邊界(用#將第一行和第二行隔離)
2、用set集合記錄走過的每乙個狀態,標記走過的棋盤狀態
3、從空格位置開始搜尋,目標狀態是棋盤中a、b位置互換
#include
#include
#include
#include
using
namespace std;
//queue 和set 都是c++ stl標準模板庫里的模板。看來學會這個很有用的!
#include
#include
#include
#include
using
namespace std;
int dir[4]
=;//左右下上
struct node
a,b,k;
void
bfs()if
(se.
count
(ss)==0
)//避免往回走,標記棋盤狀態}}
藍橋杯2016初賽 卡片換位 BFS
題目描述 你玩過華容道的遊戲嗎?這是個類似的,但更簡單的遊戲。看下面 3 x 2 的格仔 a b 在其中放5張牌,其中a代表關羽,b代表張飛,代表士兵。還有乙個格仔是空著的。你可以把一張牌移動到相鄰的空格中去 對角不算相鄰 遊戲的目標是 關羽和張飛交換位置,其它的牌隨便在 都可以。輸入 輸入存在多組...
藍橋杯 2016CC 卡片換位
卡片換位 你玩過華容道的遊戲嗎?這是個類似的,但更簡單的遊戲。看下面 3 x 2 的格仔 在其中放5張牌,其中a代表關羽,b代表張飛,代表士兵。還有乙個格仔是空著的。你可以把一張牌移動到相鄰的空格中去 對角不算相鄰 遊戲的目標是 關羽和張飛交換位置,其它的牌隨便在 都可以。輸入格式 輸入兩行6個字元...
密碼脫落,藍橋杯,2016初賽
題目描述 x星球的考古學家發現了一批古代留下來的密碼。這些密碼是由a b c d 四種植物的種子串成的序列。仔細分析發現,這些密碼串當初應該是前後對稱的 也就是我們說的映象串 由於年代久遠,其中許多種子脫落了,因而可能會失去映象的特徵。你的任務是 給定乙個現在看到的密碼串,計算一下從當初的狀態,它要...