用Free pascal 编,就是源程序为.pas【题目描述】一些瓷砖排成一排,其中站着一只青蛙.瓷砖有两面,分别为白色和黑色.青蛙所所在的位置是没有瓷砖的.比如我们可以用BWFBBW表示瓷砖和青蛙的状态
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 21:38:06
用Free pascal 编,就是源程序为.pas【题目描述】一些瓷砖排成一排,其中站着一只青蛙.瓷砖有两面,分别为白色和黑色.青蛙所所在的位置是没有瓷砖的.比如我们可以用BWFBBW表示瓷砖和青蛙的状态
用Free pascal 编,就是源程序为.pas
【题目描述】
一些瓷砖排成一排,其中站着一只青蛙.瓷砖有两面,分别为白色和黑色.青蛙所所在的位置是没有瓷砖的.比如我们可以用BWFBBW表示瓷砖和青蛙的状态:黑-白-青蛙-黑-黑-白.
青蛙在其中跳来跳去,它可以选择向左或向右跳跃一格(在左边或右边有瓷砖的前提下),这样左边或右边的瓷砖就会滑向原来青蛙所在的位置.比如上面例子中青蛙向右跳跃一格之后变成:BWBFBW.另外,青蛙可以选择隔一个瓷砖跳,即跳到它右边的右边或左边的左边(在这些格子里有瓷砖的前提下),然后这些格子里的瓷砖会翻一面跳到青蛙原来所在的位置.比如BWFBBW中的青蛙越过右边的瓷砖跳到右边的右边的瓷砖,之后变成:BWWBFW.
青蛙想要通过最少的跳跃步数使得任意两个黑瓷砖之间都没有任何白瓷砖.
【输入格式】
输入包含一行一个串,表示原始瓷砖和青蛙的状态.B代表黑瓷砖,W代表白瓷砖,F代表青蛙.保证数据中只有一只青蛙.串不为空且长度不超过100.
【输出格式】
输出一行一个整数,表示最少的跳跃步数;如果不能在10步之内完成,输出-1.
【样例】
Frog.in
WWBBFBW
Frog.out
0
Frog.in
WWFBWBW
Frog.out
1
【数据范围】
对于30%的数据,串的长度不超过10;
对于100%的数据,串的长度不超过100.
用Free pascal 编,就是源程序为.pas【题目描述】一些瓷砖排成一排,其中站着一只青蛙.瓷砖有两面,分别为白色和黑色.青蛙所所在的位置是没有瓷砖的.比如我们可以用BWFBBW表示瓷砖和青蛙的状态
裸dfs...随便了10步而已
var i,j,k,n,x,left,right,num:longint;
s:string;
state:array[0..101]of boolean;
suc,t:boolean;
function max(a,b:longint):longint;
begin
if(a>b)then exit(a);
exit(b);
end;
function min(a,b:longint):longint;
begin
if(a10)then
exit;
if(suc)then
exit;
if(right-left2)then begin
l_jump;
search(dep+1);
r_jump;
end;
if(x1)then begin
dec(x);
search(dep+1);
inc(x);
end;
if(x