news 2026/4/30 20:39:09

hh蓝桥杯一题--青蛙跳杯子

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
hh蓝桥杯一题--青蛙跳杯子

7.青蛙跳杯子 - 蓝桥云课

这个题目最后是抽象为bfs算法去解决的,一开始我怎么都没想到为什么会用bfs,后来看到他们的讲解才明白可以用bfs解决

任何可以用 BFS 解决的问题,都需要有以下几个要素:

  1. 状态(State):问题的某个特定情况

  2. 初始状态(Start State):问题的起始点

  3. 目标状态(Goal State):想要达到的终点

  4. 状态转移(State Transition):从一个状态到另一个状态的操作

  5. 状态空间(State Space):所有可能状态的集合

青蛙跳杯子问题
↓ 抽象
"状态" = 杯子排列
"移动" = 合法交换
↓ 转化
图论问题:找从起点到终点的最短路径
↓ 实现
BFS:队列 + 状态记录 + 合法性检查

接下来就是代码实现了(典型的bfs模板)

#include<iostream> #include<algorithm> #include<cstring> #include<queue> #include<map> using namespace std; string s1,s2; int n; int d[6]={-3,-2,-1,1,2,3};//6个可能跳跃的方向 map<string,int> ans;//记录每个状态需要的步数 int bfs() { queue<string> q; q.push(s1); ans[s1]=0;//初始状态步数为0 while(q.size()) { string s=q.front(); q.pop(); int cnt=ans[s];//当前步数 int x=s.find('*');//找到空位置 for(int i=0;i<6;i++) { int z=x+d[i];//目标青蛙的位置 if(z>=0&&z<n) { swap(s[x],s[z]);//交换空杯与青蛙 //新状态没有被访问过 if(!ans.count(s)) { ans[s]=cnt+1;//记录步数 if(s==s2)return ans[s]; q.push(s); } swap(s[x],s[z]); } } } return -1; } int main() { cin>>s1>>s2; n=s1.length(); cout<<bfs(); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 19:21:34

微店商品快递费用API接口指南

你需要一份结构化的微店商品快递费用 API 使用指南&#xff0c;涵盖摘要、接口概述、Python 请求示例和结语四个核心部分&#xff0c;用于理解和实际调用该 API。以下是完整且可落地的指南内容&#xff1a;一、摘要微店商品快递费用 API 是微店开放平台提供的核心接口之一&…

作者头像 李华
网站建设 2026/4/30 3:24:26

OHHTTPStubs高级应用指南:优化网络测试瓶颈的专业策略

OHHTTPStubs高级应用指南&#xff1a;优化网络测试瓶颈的专业策略 【免费下载链接】OHHTTPStubs AliSoftware/OHHTTPStubs: OHHTTPStubs是一个iOS和macOS的Objective-C和Swift库&#xff0c;用于在单元测试或者开发阶段模拟网络请求。它允许开发者设置HTTP stubs&#xff08;存…

作者头像 李华
网站建设 2026/4/26 20:41:38

如何在Miniconda中切换Python版本以兼容PyTorch

如何在 Miniconda 中切换 Python 版本以兼容 PyTorch 在深度学习项目开发中&#xff0c;一个看似简单却频繁困扰开发者的问题是&#xff1a;为什么我安装的 PyTorch 就是导入不了&#xff1f;明明 pip install 成功了&#xff0c;可一运行 import torch 就报错。这类问题背后&a…

作者头像 李华
网站建设 2026/4/25 11:19:54

解密Android GPU Inspector:谷歌开源的全栈GPU性能分析利器

解密Android GPU Inspector&#xff1a;谷歌开源的全栈GPU性能分析利器 【免费下载链接】agi Android GPU Inspector 项目地址: https://gitcode.com/gh_mirrors/ag/agi 在移动游戏和图形应用日益复杂的今天&#xff0c;GPU性能优化已成为开发者面临的重要挑战。如何深入…

作者头像 李华
网站建设 2026/4/20 15:30:10

Fashion-MNIST智能时尚识别系统:从入门到精通的完整指南

Fashion-MNIST作为现代机器学习的重要数据集&#xff0c;为构建智能时尚识别系统提供了完美的起点。无论你是AI初学者还是希望将技术应用于实际场景的开发者&#xff0c;本指南都将带你系统掌握从数据准备到模型部署的全过程。 【免费下载链接】fashion-mnist fashion-mnist - …

作者头像 李华
网站建设 2026/4/25 1:50:01

JavaScript代码覆盖率测试终极指南:Istanbul完整实践手册

JavaScript代码覆盖率测试终极指南&#xff1a;Istanbul完整实践手册 【免费下载链接】istanbul Yet another JS code coverage tool that computes statement, line, function and branch coverage with module loader hooks to transparently add coverage when running test…

作者头像 李华