首页 技术 正文
技术 2022年11月15日
0 收藏 826 点赞 2,446 浏览 1084 个字

题目描述

X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。 
X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去。 
如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。 
*WWWBBB 
其中,W字母表示白色青蛙,B表示黑色青蛙,*表示空杯子。 
X星的青蛙很有些癖好,它们只做3个动作之一 
1. 跳到相邻的空杯子里。 
2. 隔着1只其它的青蛙(随便什么颜色)跳到空杯子里。 
3. 隔着2只其它的青蛙(随便什么颜色)跳到空杯子里。 
对于上图的局面,只要1步,就可跳成该局面:WWW*BBB 
本题的任务就是已知初始局面,询问至少需要几步,才能跳成另一个目标局面。 

输入

输入存在多组测试数据,对于每组测试数据: 
输入为2行,2个串,表示初始局面和目标局面。输入的串的长度不超过15 

输出

对于每组测试数据:输出要求为一个整数,表示至少需要多少步的青蛙跳。 

样例输入 Copy

*WWBB
WWBB*
WWW*BBB
BBB*WWW

样例输出 Copy

2
10
 #include<bits/stdc++.h>
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
string a,b;
map<string,int>sigmap;
class node{
public:
string s;
int step;
int id;
node(string S,int step,int id){
this->s=S;
this->step = step;
this->id=id;
}
};
void bfs()
{
queue<node>myque;
if(a==b)
cout<<<<endl;
else{
node Nod=node(a,,a.find('*'));
myque.push(Nod);
sigmap[a]=;
while(!myque.empty()){
Nod=myque.front();
myque.pop();
for(int i=Nod.id-; i<=Nod.id+; i++){
if(i>=&&i<Nod.s.length()&&i!=Nod.id){
string S=Nod.s;
swap(S[i],S[Nod.id]);
if(sigmap[S] == )
continue;
if(S==b){
cout<<Nod.step+<<endl;
return;
}
sigmap[S]=;
node now=node(S,Nod.step+,i);
myque.push(now);
}
}
}
}
}
int main()
{
while(cin>>a){
cin>>b;
bfs();
}
return ;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,912
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,437
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,252
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,063
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,694
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,732