藍橋杯2016初賽 卡片換位 BFS

2022-05-03 12:21:23 字數 1031 閱讀 8039

題目描述

你玩過華容道的遊戲嗎?這是個類似的,但更簡單的遊戲。看下面 3 x 2 的格仔

+---+---+---+

| a | * | * |

+---+---+---+

| b | | * |

+---+---+---+

在其中放5張牌,其中a代表關羽,b代表張飛,* 代表士兵。還有乙個格仔是空著的。

你可以把一張牌移動到相鄰的空格中去(對角不算相鄰)。

遊戲的目標是:關羽和張飛交換位置,其它的牌隨便在**都可以。

輸入

輸入存在多組測試資料,對於每組測試資料:

輸入兩行6個字元表示當前的局面

輸出

對於每組測試資料輸出乙個整數表示答案

樣例輸入

copy

* a

**ba b

***

樣例輸出 copy

17

12

題解:

1、因為棋盤只有兩行,可以把他處理成一行處理(bfs的時候方便標記這個棋盤狀態),注意隔離邊界(用#將第一行和第二行隔離)

2、用set集合記錄走過的每乙個狀態,標記走過的棋盤狀態

3、從空格位置開始搜尋,目標狀態是棋盤中a、b位置互換

#include#include

#include

#include

using

namespace

std;

int dir[4]=;//

左右下上

struct

node

a,b,k;

void

bfs()

if(se.count(ss)==0)//

避免往回走,標記棋盤狀態}}

}}int

main()

k.cnt=0

; k.s=str;

bfs();

}return0;

}

藍橋杯2016初賽 卡片換位

你玩過華容道的遊戲嗎?這是個類似的,但更簡單的遊戲。看下面 3 x 2 的格仔 a b 在其中放5張牌,其中a代表關羽,b代表張飛,代表士兵。還有乙個格仔是空著的。你可以把一張牌移動到相鄰的空格中去 對角不算相鄰 遊戲的目標是 關羽和張飛交換位置,其它的牌隨便在 都可以。輸入輸入存在多組測試資料,對...

藍橋杯 2016CC 卡片換位

卡片換位 你玩過華容道的遊戲嗎?這是個類似的,但更簡單的遊戲。看下面 3 x 2 的格仔 在其中放5張牌,其中a代表關羽,b代表張飛,代表士兵。還有乙個格仔是空著的。你可以把一張牌移動到相鄰的空格中去 對角不算相鄰 遊戲的目標是 關羽和張飛交換位置,其它的牌隨便在 都可以。輸入格式 輸入兩行6個字元...

密碼脫落,藍橋杯,2016初賽

題目描述 x星球的考古學家發現了一批古代留下來的密碼。這些密碼是由a b c d 四種植物的種子串成的序列。仔細分析發現,這些密碼串當初應該是前後對稱的 也就是我們說的映象串 由於年代久遠,其中許多種子脫落了,因而可能會失去映象的特徵。你的任務是 給定乙個現在看到的密碼串,計算一下從當初的狀態,它要...