题目描述

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 ;
}

BFS(广度优先搜索遍历保存全局状态,华容道翻版做法)--08--DFS--蓝桥杯青蛙跳杯子的更多相关文章

  1. 【算法导论】图的广度优先搜索遍历(BFS)

    图的存储方法:邻接矩阵.邻接表 例如:有一个图如下所示(该图也作为程序的实例): 则上图用邻接矩阵可以表示为: 用邻接表可以表示如下: 邻接矩阵可以很容易的用二维数组表示,下面主要看看怎样构成邻接表: ...

  2. 图的遍历BFS广度优先搜索

    图的遍历BFS广度优先搜索 1. 简介 BFS(Breadth First Search,广度优先搜索,又名宽度优先搜索),与深度优先算法在一个结点"死磕到底"的思维不同,广度优先 ...

  3. 数据结构之 图论---基于邻接矩阵的广度优先搜索遍历(输出bfs遍历序列)

    数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历 Time Limit: 1000MS Memory limit: 65536K 题目描述 给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索( ...

  4. 算法竞赛——BFS广度优先搜索

    BFS 广度优先搜索:一层一层的搜索(类似于树的层次遍历) BFS基本框架 基本步骤: 初始状态(起点)加到队列里 while(队列不为空) 队头弹出 扩展队头元素(邻接节点入队) 最后队为空,结束 ...

  5. SDUT 2141 【TEST】数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历

    数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...

  6. SDUT 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历

    数据结构实验之图论二:基于邻接表的广度优先搜索遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Descript ...

  7. SDUT-2124_基于邻接矩阵的广度优先搜索遍历

    数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 给定一个无向连通图 ...

  8. 0算法基础学算法 搜索篇第二讲 BFS广度优先搜索的思想

    dfs前置知识: 递归链接:0基础算法基础学算法 第六弹 递归 - 球君 - 博客园 (cnblogs.com) dfs深度优先搜索:0基础学算法 搜索篇第一讲 深度优先搜索 - 球君 - 博客园 ( ...

  9. BFS广度优先搜索 poj1915

    Knight Moves Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 25909 Accepted: 12244 Descri ...

随机推荐

  1. SpringBoot整合WEB开发--(四)@ControllerAdvice

    1.全局异常处理: @ControllerAdvice处理全局数据,一般搭配@ExceptionHandler,@ModelAttribute以及@InitBinder使用. @ControllerA ...

  2. 解决ERROR 1130: Host 'x.x.x.x' is not allowed to connect to this MariaDB server 方法

    问题描述 在使用SQLyog操作Linux上的MariaDB时候,会出现如下错误: 解决方法 改表法 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电 ...

  3. ORM表单操作

    准备工作: 1.在orm操作表单之前需要先修改下django中连接的数据库,默认连接的是SQLit3,这里我们修改成mysql 2.mysql使用的版本是5.6,已经安装好了,直接连接就可以使用 创建 ...

  4. 2.7.5 元素定位(主推xpath、cssSelector) ❀❀❀

    定位方式选择: 1. 当页面元素有id属性时,最好尽量用id来定位.但由于现实项目中很多程序员其实写的代码并不规范,会缺少很多标准属性,这时就只有选择其他定位方法. 2. xpath很强悍,但定位性能 ...

  5. beego 使用连接mysql 报错 register db Ping `default1`, Error 1049: Unknown database 'test_beego' must have one register DataBase alias named `default`

    项目移植到另一台电脑后出现以下问题,及其解决方法: package models import ( "github.com/astaxie/beego/orm" _ "g ...

  6. apache http server 和tomcat的区别 以及nginx

    Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器. 要明白他们之间的区别,我们首先需要明白HTTP协议.HTML页面.JSP.Servlet之 ...

  7. CAD 批量提取点坐标,实现坐标的快速提取

    原创 CAD 批量提取点坐标,实现坐标的快速提取 2018-08-07 20:36:13 caohongji 阅读数 13678   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议 ...

  8. 只要没有给String[]数组new 空间,那么他就只是一个引用

    public class Test1 { @Test public void test(){ String[] values = {"good", "morning&qu ...

  9. nginx-vue项目在window下的部署

    主机->操作系统->window(.net)/Linux->tomcat/nginx(软件反向代理) 1.vue项目打包到dist文件夹(之后把dist文件夹放到服务器就可以了) n ...

  10. Linux新建用户,切换后只显示$问题

    1,执行以下命令创建一个新的用户 useradd -d /home/sam -m sam -s /bin/sh -g group -G adm,root 这个命令中指定了这个用户登录的shell 是/ ...