藍橋杯 2017初賽 青蛙跳杯子 bfs

2021-10-24 02:24:36 字數 1235 閱讀 5428

跳到相鄰的空杯子裡。

隔著1只其它的青蛙(隨便什麼顏色)跳到空杯子裡。

隔著2只其它的青蛙(隨便什麼顏色)跳到空杯子裡。

對於上圖的局面,只要1步,就可跳成該局面:www*bbb

本題的任務就是已知初始局面,詢問至少需要幾步,才能跳成另乙個目標局面。

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

輸入為2行,2個串,表示初始局面和目標局面。輸入的串的長度不超過15

對於每組測試資料:輸出要求為乙個整數,表示至少需要多少步的青蛙跳。

樣例輸入

wwbb

wwbb

wwwbbb

bbbwww

樣例輸出2

10

【給自己看的】

1.這個題目有點像之前那個跳蚱蜢的(圍一圈的那個),都是bfs的思路。

2.但是有幾個小點,我記錄一下:

(1)因為它的每個狀態要記錄的可能不止兩個東西,所以pair無法記錄的情況下,可以用結構體啊,寫上建構函式,還蠻美滋滋。

(2)還有你的vis陣列。寫的真的有點鬼畜,push進去之後就得改vis了,同時注意第乙個得直接改昂

(3)吸取上次那個蚱蜢的乙個不太好的寫法,就是交換的時候直接在當前狀態改,這樣造成乙個麻煩,判斷完之後又要交換回來。所以比較好的寫法是在設乙個字串來改。

#include

#define ll long long

using

namespace std;

typedef mapint> mp;

struct node};

//每種狀態記錄的結構體

int dx[10]

=;//轉移函式

string a,b;

//輸入進來的兩字串

int xpos;

//記a的*在什麼位置

int l;

//記字串的長度

intbfs()

//滿足條件就退出

qu.pop();

for(

int i=

0;i<

6;i++

)//開始探索移動方式}}

}int

main()

} cout<<

bfs(

)<}

return0;

}

藍橋杯2017初賽 青蛙跳杯子 BFS

題目描述 輸入 輸入存在多組測試資料,對於每組測試資料 輸入為2行,2個串,表示初始局面和目標局面。輸入的串的長度不超過15 輸出 對於每組測試資料 輸出要求為乙個整數,表示至少需要多少步的青蛙跳。樣例輸入 wwbb wwbb www bbb bbb www 樣例輸出 2 10 include in...

藍橋杯歷屆試題 青蛙跳杯子

歷屆試題 青蛙跳杯子 時間限制 1.0s 記憶體限制 256.0mb 問題描述 x星球的流行寵物是青蛙,一般有兩種顏色 白色和黑色。如下圖,有一排杯子,左邊的乙個是空著的,右邊的杯子,每個裡邊有乙隻青蛙。wwwbbb 其中,w字母表示白色青蛙,b表示黑色青蛙,表示空杯子。x星的青蛙很有些癖好,它們只...

藍橋 青蛙跳杯子(bfs)

問題描述 樣例輸入 wwbb wwbb 樣例輸出 樣例輸入 www bbb bbb www 樣例輸出 資料規模和約定 我們約定,輸入的串的長度不超過15 資源約定 峰值記憶體消耗 含虛擬機器 256m cpu消耗 1000ms 請嚴格按要求輸出,不要畫蛇添足地列印類似 請您輸入.的多餘內容。所有 放...