问题描述
  X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。
  X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去。
  如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。

其中,W字母表示白色青蛙,B表示黑色青蛙,*表示空杯子。

X星的青蛙很有些癖好,它们只做3个动作之一:
  1. 跳到相邻的空杯子里。
  2. 隔着1只其它的青蛙(随便什么颜色)跳到空杯子里。
  3. 隔着2只其它的青蛙(随便什么颜色)跳到空杯子里。

对于上图的局面,只要1步,就可跳成下图局面:

本题的任务就是已知初始局面,询问至少需要几步,才能跳成另一个目标局面。

输入为2行,2个串,表示初始局面和目标局面。
  输出要求为一个整数,表示至少需要多少步的青蛙跳。

数据规模和约定
  我们约定,输入的串的长度不超过15
  bfs,用结点node代表当前的状态,AC的C++程序如下:

#include<iostream>
#include<string>
#include<cstring>
#include<queue>
#include<map>
#include<algorithm>
using namespace std;
string str1,str2;
map<string ,int> visit;
struct node
{string s; //每个结点的状态 int step; //已经跳了多少步node(string s1,int st){s=s1,step=st;} };
queue<node> q;
int bfs( )
{int len=str1.size();q.push(node(str1,0));while(!q.empty()){node f=q.front();q.pop();if(f.s==str2) return f.step;for(int i=0;i<len;i++){if(f.s[i]=='*'){for(int j=max(0,i-3);j<=min(len-1,i+3);j++) //在周围3个杯子搜索,但不能超过边界 {string fs=f.s;if(fs[j]!='*'){swap(fs[j],fs[i]);if(visit[fs]==0){visit[fs]=1;q.push(node(fs,f.step+1));}}}}}}
}
int main()
{  cin>>str1>>str2;cout<<bfs()<<endl;
}

蓝桥杯 青蛙跳杯子相关推荐

  1. Java实现第八届蓝桥杯青蛙跳杯子

    青蛙跳杯子 题目描述 X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色.X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去.如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有 ...

  2. 蓝桥杯 青蛙跳杯子【第八届】【省赛】【C组】 BFS 广搜

    资源限制 时间限制:1.0s   内存限制:256.0MB X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色. X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去. 如下图,有一排杯子, ...

  3. 蓝桥杯 青蛙跳杯子(广搜)

    问题描述 X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色. X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去. 如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙 ...

  4. 蓝桥杯练习:青蛙跳杯子

    青蛙跳杯子 原题链接:问题 1878: [蓝桥杯][2017年第八届真题]青蛙跳杯子 解题思路:将问题简单转化为青蛙和*的换位,使用BFS搜索即可,为避免重复状态使用map存储,可以在O(1)判重 i ...

  5. 【蓝桥杯】历届试题 青蛙跳杯子(广度优先搜索bfs)(C++)

    [蓝桥杯]历届试题 青蛙跳杯子 问题描述 思路分析 代码实现 问题描述 题目链接:青蛙跳杯子 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 X星球的流行宠物是青蛙,一般有两种颜色: ...

  6. 第八届蓝桥杯省赛——青蛙跳杯子

    第八届蓝桥杯省赛--青蛙跳杯子 题目描述 XXX 星球的流行宠物是青蛙,一般有两种颜色:白色和黑色. XXX 星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去. 如下图,有一排杯子,左边的 ...

  7. 蓝桥杯——九宫重排、青蛙跳杯子

    1.历届试题 九宫重排   时间限制:1.0s   内存限制:256.0MB 问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中 ...

  8. 【蓝桥杯】历届试题 青蛙跳杯子(广度优先搜索bfs)

    历届试题 青蛙跳杯子 问题描述 X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色. X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去. 如下图,有一排杯子,左边的一个是空着的,右边的杯 ...

  9. 青蛙跳杯子(蓝桥杯)

    青蛙跳杯子 题目描述 XX 星球的流行宠物是青蛙,一般有两种颜色:白色和黑色. XX 星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去. 如下图,有一排杯子,左边的一个是空着的,右边的杯子 ...

最新文章

  1. 宏定义中的#、##操作符和... 、 _ _VA_ARGS_ _解析
  2. Python Set Literals
  3. 摆脱“人肉”审核,从0搭建可视化SQL自动审核平台
  4. 吴恩达 coursera AI 专项五第三课(下)总结+作业答案
  5. 使用PaddleFluid和TensorFlow训练RNN语言模型
  6. bzoj1297 [SCOI2009]迷路——拆点+矩阵快速幂
  7. 使用PowerMock测试对象的内部状态
  8. SpringBoot入门到精通_第4篇 _开发三板斧
  9. jQuery零基础入门——(三)层级选择器
  10. kafka to mysql_Flink实现Kafka到Mysql的Exactly-Once
  11. Excel2013数据透视表、Power View中的钻取
  12. 安卓TV版二开对接苹果cms后台,原生Java前端
  13. 光模块发射光功率和接收灵敏度介绍
  14. 安全架构--13--企业资产管理体系建设总结
  15. 服务器销售周总结怎么写,网管周工作总结范文的内容
  16. IKVM.NET_第三篇_成功项目
  17. 基于Cubieboard2的静电测试仪开发
  18. 【NOIP2014】生活大爆炸版石头剪刀布 模拟
  19. 微信界面Android实现
  20. vscode代码格式化 保存时候自动修改为合规代码

热门文章

  1. 12款免费的响应式 WordPress 主题下载
  2. 湖仓一体,Hologres加速云数据湖DLF原理解析
  3. KubeSphere(v3.1.1)学习---KubeSphere介绍和基于K8S的安装
  4. ubuntu双系统开机紫屏问题
  5. 六级备考28天|CET-6|听力第三讲|篇章的做题方法与练习法|2022年6月考题9-11题|16:15-17:15
  6. 什么是 IMU?惯性测量单元工作和应用
  7. buuctf——pyre
  8. 收藏43个免费数据挖掘软件
  9. R语言forestplot包绘制森林图
  10. IDC:紫光收购华三通信公司和惠普中国区企业业务