news 2026/10/29 2:59:14

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/10/29 0:14:31

远程服务器SSH登录Miniconda环境执行批量任务

远程服务器SSH登录Miniconda环境执行批量任务 在现代AI研发与数据工程实践中&#xff0c;一个常见的场景是&#xff1a;你在本地写好了训练脚本&#xff0c;却需要在远程GPU服务器上运行。这台服务器可能同时承载多个项目——有人用PyTorch 1.12&#xff0c;有人跑TensorFlow 2…

作者头像 李华
网站建设 2026/10/20 2:11:05

OpenAssistant LLaMa 30B终极部署指南:架构解密与实战应用深度解析

OpenAssistant LLaMa 30B终极部署指南&#xff1a;架构解密与实战应用深度解析 【免费下载链接】oasst-sft-6-llama-30b-xor 项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/oasst-sft-6-llama-30b-xor 探索大语言模型部署的深度奥秘&#xff01;本文将为你揭…

作者头像 李华
网站建设 2026/10/27 6:52:17

适用于教学实验的MIPS ALU设计超详细版解析

从零搭建CPU的第一步&#xff1a;手把手教你设计教学级MIPS ALU你有没有想过&#xff0c;一条简单的add $t0, $t1, $t2指令&#xff0c;是如何在硬件层面被“理解”并执行的&#xff1f;它不是魔法&#xff0c;也不是黑箱。它的背后&#xff0c;是一个由逻辑门、加法器和控制信…

作者头像 李华
网站建设 2026/10/27 6:52:17

AI招聘助手:用智能简历筛选和面试问题生成告别招聘烦恼

AI招聘助手&#xff1a;用智能简历筛选和面试问题生成告别招聘烦恼 【免费下载链接】opengpts 项目地址: https://gitcode.com/gh_mirrors/op/opengpts 你是否也曾经历过这样的困境&#xff1f;面对堆积如山的简历&#xff0c;每个候选人看起来都不错&#xff0c;却不知…

作者头像 李华
网站建设 2026/10/27 6:52:17

Docker Compose编排Miniconda多容器应用

Docker Compose编排Miniconda多容器应用 在人工智能与数据科学项目日益复杂的今天&#xff0c;一个常见的痛点是&#xff1a;“代码在我机器上跑得好好的&#xff0c;怎么一换环境就出问题&#xff1f;” 这背后往往是 Python 版本不一致、依赖包冲突、系统库缺失等问题作祟。更…

作者头像 李华
网站建设 2026/10/27 16:20:54

模糊测试与运行时安全监控:现代软件防护的完整实践指南

在当今快速迭代的软件开发环境中&#xff0c;传统的安全测试方法已难以应对日益复杂的安全威胁。模糊测试结合运行时监控技术&#xff0c;为软件安全防护提供了革命性的解决方案。 【免费下载链接】oss-fuzz OSS-Fuzz - continuous fuzzing for open source software. 项目地…

作者头像 李华