当前位置: 首页 > news >正文

青蛙跳杯子--bfs最短路

1.最短路效应求最少/最短

2.map<string,int>来代替vis标记次数

3.3种方式6种情况

#include<bits/stdc++.h>
using namespace std;
#define N 100011
typedef  long long ll;
typedef pair<ll,int> pii;
string a,b;
map<string,int> bo;
queue<string> q;
int main() {cin>>a>>b;bo[a]=1;for(int i=0;i<a.size();i++){if(a[i]=='*'){if(i-3>=0){char x=a[i-3];char y=a[i];string w=a;w[i-3]=y;w[i]=x;if(!bo[w]) {bo[w]=bo[a]+1;q.push(w);}}if(i-2>=0){char x=a[i-2];char y=a[i];string w=a;w[i-2]=y;w[i]=x;if(!bo[w]) {bo[w]=bo[a]+1;q.push(w);}}if(i-1>=0){char x=a[i-1];char y=a[i];string w=a;w[i-1]=y;w[i]=x;if(!bo[w]) {bo[w]=bo[a]+1;q.push(w);}}if(i+3<a.size()){char x=a[i+3];char y=a[i];string w=a;w[i+3]=y;w[i]=x;if(!bo[w]) {bo[w]=bo[a]+1;q.push(w);}}if(i+2<a.size()){char x=a[i+2];char y=a[i];string w=a;w[i+2]=y;w[i]=x;if(!bo[w]) {bo[w]=bo[a]+1;q.push(w);}}if(i+1<a.size()){char x=a[i+1];char y=a[i];string w=a;w[i+1]=y;w[i]=x;if(!bo[w]) {bo[w]=bo[a]+1;q.push(w);}}}}while(q.size()){string a=q.front();q.pop();if(a==b){cout<<bo[a]-1;return 0;}else{for(int i=0;i<a.size();i++){if(a[i]=='*'){if(i-3>=0){char x=a[i-3];char y=a[i];string w=a;w[i-3]=y;w[i]=x;if(!bo[w]) {bo[w]=bo[a]+1;q.push(w);}}if(i-2>=0){char x=a[i-2];char y=a[i];string w=a;w[i-2]=y;w[i]=x;if(!bo[w]) {bo[w]=bo[a]+1;q.push(w);}}if(i-1>=0){char x=a[i-1];char y=a[i];string w=a;w[i-1]=y;w[i]=x;if(!bo[w]) {bo[w]=bo[a]+1;q.push(w);}}if(i+3<a.size()){char x=a[i+3];char y=a[i];string w=a;w[i+3]=y;w[i]=x;if(!bo[w]) {bo[w]=bo[a]+1;q.push(w);}}if(i+2<a.size()){char x=a[i+2];char y=a[i];string w=a;w[i+2]=y;w[i]=x;if(!bo[w]) {bo[w]=bo[a]+1;q.push(w);}}if(i+1<a.size()){char x=a[i+1];char y=a[i];string w=a;w[i+1]=y;w[i]=x;if(!bo[w]) {bo[w]=bo[a]+1;q.push(w);}}}}}	} return 0;
}

http://www.dtcms.com/a/191566.html

相关文章:

  • 普通IT的股票交易成长史--20250514复盘
  • 基于GPUGEEK 平台进行深度学习
  • 高德地图在Vue3中的使用方法
  • vue3实现JSON格式化和JSONPath提取功能
  • 最大熵逆强化学习
  • Seata源码—2.seata-samples项目介绍
  • OrangePi Zero 3学习笔记(Android篇)9 - I2C和从设备
  • C++类和对象--高阶
  • 【C++】类与对象【下】
  • “智”造升级:金众诚如何赋能重型机械企业高效项目管理?
  • 【Deepseek 学cuda】CUTLASS: Fast Linear Algebra in CUDA C++
  • 【Python】普通方法、类方法和静态方法的区分
  • Vue百日学习计划Day1-3天详细计划-Gemini版
  • Socket API 核心函数详解
  • 万字解析:Java字符串
  • Three.js知识框架
  • rhel8.1 无法安装应用(提示需要注册系统)
  • 多线程与线程互斥
  • sip协议栈--sip结构分析
  • 一文理解扩散模型(生成式AI模型)(2)
  • 编程的本质, 就是创造工具
  • 架构设计不合理,如何优化系统结构
  • 【Linux】多路转接epoll、Linux高并发I/O多路复用
  • 【Linux】基础指令(Ⅱ)
  • 第十九次博客打卡
  • 可变形卷积简介(Deformable Convolution)
  • vLLM - SamplingParams 参数
  • Linux服务之lvs集群与dr模式部署
  • Mathematics-2025《Semi-Supervised Clustering via Constraints Self-Learning》
  • 线程同步机制