試題 歷屆試題 青蛙跳杯子
*wwwbbb
其中,w字母表示白色青蛙,b表示黑色青蛙,*表示空杯子。
x星的青蛙很有些癖好,它們只做3個動作之一:
1. 跳到相鄰的空杯子裡。
2. 隔著1只其它的青蛙(隨便什麼顏色)跳到空杯子裡。
3. 隔著2只其它的青蛙(隨便什麼顏色)跳到空杯子裡。
對於上圖的局面,只要1步,就可跳成下圖局面:
www*bbb
本題的任務就是已知初始局面,詢問至少需要幾步,才能跳成另乙個目標局面。
輸入為2行,2個串,表示初始局面和目標局面。
輸出要求為乙個整數,表示至少需要多少步的青蛙跳。
樣例輸入
wwbb
wwbb
樣例輸出
2樣例輸入
wwwbbb
bbbwww
樣例輸出
10資料規模和約定
我們約定,輸入的串的長度不超過15
資源約定:
峰值記憶體消耗(含虛擬機器) < 256m
cpu消耗 < 1000ms
請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入…」 的多餘內容。
所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。
不要使用package語句。不要使用jdk1.7及以上版本的特性。
主類的名字必須是:main,否則按無效**處理。
笨笨有話說:
我夢見自己是一棵大樹,
青蛙跳躍,
我就發出新的枝條,
春風拂動那第 5 層的新枝,
哦,我已是枝繁葉茂。
#pragma warning(disable:4996)
#include
"iostream"
#include
"functional"
#include
"algorithm"
#include
"cstring"
#include
"stack"
#include
"cmath"
#include
"queue"
#include
"vector"
#include
"map"
typedef
long
long
int ll;
using
namespace std;
ll ans;
typedef
struct node node;
queue an;
string s, f;
mapint> q;
ll bfs()
; an.
push
(r);
while
(!an.
empty()
);an.
push
(m);
} x = rr.k;
if(i +
1< x.
size()
&& x[i +1]
=='*');
an.push
(m);
} x = rr.k;
if(i +
2< x.
size()
&& x[i +1]
!='*'
&& x[i +2]
=='*');
an.push
(m);
} x = rr.k;
if(i -
2>=
0&& x[i -1]
!='*'
&& x[i -2]
=='*');
an.push
(m);
} x = rr.k;
if(i -
3>=
0&& x[i -1]
!='*'
&& x[i -2]
!='*'
&& x[i -3]
=='*');
an.push
(m);
} x = rr.k;
if(i +
3< x.
size()
&& x[i +1]
!='*'
&& x[i +2]
!='*'
&& x[i +3]
=='*');
an.push
(m);}}
}}}int
main()
藍橋 青蛙跳杯子(bfs)
問題描述 樣例輸入 wwbb wwbb 樣例輸出 樣例輸入 www bbb bbb www 樣例輸出 資料規模和約定 我們約定,輸入的串的長度不超過15 資源約定 峰值記憶體消耗 含虛擬機器 256m cpu消耗 1000ms 請嚴格按要求輸出,不要畫蛇添足地列印類似 請您輸入.的多餘內容。所有 放...
青蛙跳杯子 bfs
歷屆試題 青蛙跳杯子 時間限制 1.0s 記憶體限制 256.0mb 問題描述 x星球的流行寵物是青蛙,一般有兩種顏色 白色和黑色。如下圖,有一排杯子,左邊的乙個是空著的,右邊的杯子,每個裡邊有乙隻青蛙。wwwbbb 其中,w字母表示白色青蛙,b表示黑色青蛙,表示空杯子。x星的青蛙很有些癖好,它們只...
青蛙跳杯子 bfs
wwwbbb 其中,w字母表示白色青蛙,b表示黑色青蛙,表示空杯子。x星的青蛙很有些癖好,它們只做3個動作之一 1.跳到相鄰的空杯子裡。2.隔著1只其它的青蛙 隨便什麼顏色 跳到空杯子裡。3.隔著2只其它的青蛙 隨便什麼顏色 跳到空杯子裡。對於上圖的局面,只要1步,就可跳成下圖局面 www bbb ...