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

算法提高之魔板

算法提高之魔板

  • 核心思想:最短路模型

    • 将所有状态存入队列 更新步数 同时记录前驱状态
  •   #include <iostream>#include <cstring>#include <algorithm>#include <unordered_map>#include <queue>using namespace std;string start="12345678";char g[2][4];  //存矩阵unordered_map<string,pair<char,string>> pre;  //第一维当前状态 第二维(走法,前驱状态)unordered_map<string,int> dist;void set(string state)  //将字符串放入矩阵{for(int i=0;i<4;i++) g[0][i] = state[i];for(int i=7,j=0;j<4;i--,j++) g[1][j] = state[i];}string get()  //将矩阵提取成字符串{string res;for(int i=0;i<4;i++) res += g[0][i];for(int i=3;i>=0;i--) res += g[1][i];return res;}string move0(string state)  //走法A{set(state);for(int i=0;i<4;i++) swap(g[0][i],g[1][i]);return get();}string move1(string state)  //走法B{set(state);int v0 = g[0][3],v1 = g[1][3];for(int i=3;i>0;i--){g[0][i] = g[0][i-1];g[1][i] = g[1][i-1];}g[0][0] = v0,g[1][0] = v1;return get();}string move2(string state)  //走法C{set(state);int v = g[0][1];g[0][1] = g[1][1];g[1][1] = g[1][2];g[1][2] = g[0][2];g[0][2] = v;return get();}int bfs(string start,string end){if(start == end) return 0;queue<string> q;q.push(start);dist[start] = 0;while(!q.empty()){auto t = q.front();q.pop();string m[3];m[0] = move0(t);m[1] = move1(t);m[2] = move2(t);for(int i=0;i<3;i++){if(!dist.count(m[i])){dist[m[i]] = dist[t] + 1;pre[m[i]] = {'A' + i,t};  //存前驱q.push(m[i]);if(m[i] == end) return dist[end];}}}return -1;}int main(){int x;string end;for(int i=0;i<8;i++){cin>>x;end+=char(x+'0');}int step = bfs(start,end);cout<<step<<endl;string res;while(end != start){res += pre[end].first;end = pre[end].second;}reverse(res.begin(),res.end());  //走法是倒过来的 倒置一下if(step > 0) cout<<res<<endl;}
    

相关文章:

算法提高之魔板

算法提高之魔板 核心思想&#xff1a;最短路模型 将所有状态存入队列 更新步数 同时记录前驱状态 #include <iostream>#include <cstring>#include <algorithm>#include <unordered_map>#include <queue>using namespace std;string start&qu…...

服务器内存占用不足会怎么样,解决方案

在当今数据驱动的时代&#xff0c;服务器对于我们的工作和生活起着举足轻重的作用。而在众多影响服务器性能的关键因素当中&#xff0c;内存扮演着极其重要的角色。 服务器内存&#xff0c;也称RAM&#xff08;Random Access Memory&#xff09;&#xff0c;是服务器核心硬件部…...

elasticsearch文档读写原理大致分析一下

文档写简介 客户端通过hash选择一个node发送请求&#xff0c;专业术语叫做协调节点 协调节点会对document进行路由&#xff0c;将请求转发给对应的primary shard primary shard在处理完数据后&#xff0c;会将document 同步到所有replica shard 协调节点将处理结果返回给…...

1 开发环境

开发环境&#xff08;platformio python arduino框架&#xff09;的搭建可以参考b站upESP32超详细教程-使用VSCode&#xff08;基于Arduino框架&#xff09;哔哩哔哩bilibili 这里推荐离线安装esp32库文件&#xff0c;要不然要等很久&#xff08;b站教程很多&#xff09; 搭…...

云视频,也称为视频云服务,是一种基于云计算技术理念的视频流媒体服务

云视频&#xff0c;也称为视频云服务&#xff0c;是一种基于云计算技术理念的视频流媒体服务。它基于云计算商业模式&#xff0c;为视频网络平台服务提供强大的支持。在云平台上&#xff0c;所有的视频供应商、代理商、策划服务商、制作商、行业协会、管理机构、行业媒体和法律…...

[Vision Board创客营]--使用openmv识别阿尼亚

文章目录 [Vision Board创客营]使用openmv识别阿尼亚介绍环境搭建训练模型上传图片生成模型 使用结语 [Vision Board创客营]使用openmv识别阿尼亚 &#x1f680;&#x1f680;五一和女朋友去看了《间谍过家家 代号&#xff1a;白》&#xff0c;入坑二刺螈&#xff08;QQ头像也换…...

【Linux:lesson1】的基本指令

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;Linux课程学习 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 &#x1f697;打开Xshell&#xff0c;登陆root…...

20240511日记

今天工作内容&#xff1a; 1.二期2号机EAP测试 2.二期开门机器暂停&#xff08;停轴&#xff0c;停流水线电机&#xff09;&#xff0c;关闭门后继续功能测试 3.针点位偏移还需要调整&#xff0c;未进行大批量验证是否偏移&#xff08;S3模板点位测试&#xff0c;两台机各焊…...

蓝桥杯成绩已出

蓝桥杯的成绩早就已经出来了&#xff0c;虽然没有十分惊艳 &#xff0c;但是对于最终的结果我是心满意足的&#xff0c;感谢各位的陪伴&#xff0c;关于蓝桥杯的刷题笔记我已经坚持更新了49篇&#xff0c;但是现在即将会告别一段落&#xff0c;人生即将进入下一个规划。我们一起…...

.kat6.l6st6r勒索病毒数据怎么处理|数据解密恢复

导言&#xff1a; 在数字时代的洪流中&#xff0c;网络安全领域的新挑战层出不穷。近期&#xff0c;.kat6.l6st6r勒索病毒的出现再次打破了传统安全防护的界限。这种新型勒索病毒不仅具有高超的加密技术&#xff0c;更以其独特的传播方式和隐蔽性&#xff0c;给全球用户带来了…...

Spring Batch 是什么?主要用于什么场景?

Spring Batch是一个开源的、基于Spring框架的批量处理框架&#xff0c;它提供了一系列用于批量数据处理的工具和API。Spring Batch的主要目标是简化和标准化批量数据的处理过程&#xff0c;使得开发者可以更加专注于业务逻辑的实现&#xff0c;而不是批量处理的复杂性。 Sprin…...

SQL-慢查询的定位及优化

定位慢查询sql 启用慢查询日志&#xff1a; 确保MySQL实例已经启用了慢查询日志功能。可以通过以下命令查看是否启用&#xff1a; SHOW VARIABLES LIKE slow_query_log;如果未启用&#xff0c;可以通过以下命令启用&#xff1a; SET GLOBAL slow_query_log ON;配置慢查询日志&…...

练习题(2024/5/11)

1逆波兰表达式求值 给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意&#xff1a; 有效的算符为 、-、* 和 / 。每个操作数&#xff08;运算对象&#xff09;都可以是一个整数或…...

linux系统服务器中常见故障及排查方法

目录 故障1&#xff1a;系统无响应 故障2&#xff1a;网络连接问题 故障3&#xff1a;文件系统错误 故障4&#xff1a;软件包依赖问题 故障5&#xff1a;用户权限问题 故障6&#xff1a;服务无法正常工作 故障7&#xff1a;磁盘空间不足 故障8&#xff1a;内存不足 故障…...

产品人生(5):从“敏捷开发”到“四化时间管理法”

人生如产品&#xff0c;产品映人生&#xff0c;借鉴产品思维&#xff0c;快速提升软技能&#xff01; 在互联网的敏捷开发实践中&#xff0c;经常会用到“流程化、模板化、清单化、不断优化”的思想来提升开发的效率和产品质量&#xff0c;并确保团队能够快速响应市场变化。大…...

超级好看的html网站维护源码

源码介绍 好看的html网站维护源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c; 源码截图 源码下载 好看的html网站维护源码...

从零开始搭建Springboot项目脚手架2:配置文件、返回值、日志等

1、多个环境与配置文件 2、统一返回值 返回值包括两种场景&#xff1a;正常controller的返回、异常发生之后返回 正常controller的返回&#xff1a;通过在controller的默认返回Response实现 异常发生之后返回&#xff1a;通过全局异常处理统一捕获返回 首先创建类StatusCode…...

Java web第五次作业

1.在idea中配置好数据源 2、视频案例中只给出了查询所有结果的示例&#xff0c;请自己完成添加、删除、修改操作的代码。以下供参 考。 Delete("delete from emp where id#{id}") public void delete(Integer id); 测试代码 Test public void testDelete(){ empMa…...

Unity使用ToggleGroup对多个Toggle进行管理时,初始化默认选项失效的问题

问题描述&#xff1a; 在unity脚本的OnEnable中用代码设置Toggle集合中的其中一个对象的ison时&#xff0c;发现并没有根据设置发生变化。但是该Toggle的OnValueChange却发生过变化。 如果使用协程等待0.01s,那么对应组件的ison的修改才能生效&#xff0c;但是逐帧分析的话会发…...

Retrofit同步请求直接返回目标对象

Rxjava方式&#xff1a; // 创建 Retrofit 实例 Retrofit retrofit new Retrofit.Builder().baseUrl("https://api.example.com/").addConverterFactory(GsonConverterFactory.create()).addCallAdapterFactory(RxJava2CallAdapterFactory.create()).build();// 创…...

axure-cn语言包:让Axure RP全版本界面无缝切换至中文的完整指南

axure-cn语言包&#xff1a;让Axure RP全版本界面无缝切换至中文的完整指南 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包&#xff0c;不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-…...

SleeperX:Mac电源管理的智能守护者,让每一次工作都不被打断

SleeperX&#xff1a;Mac电源管理的智能守护者&#xff0c;让每一次工作都不被打断 【免费下载链接】SleeperX MacBook prevent idle/lid sleep! Hackintosh sleep on low battery capacity. 项目地址: https://gitcode.com/gh_mirrors/sl/SleeperX 您是否经历过这样的时…...

从像素到对象:如何用HANet和SNUNet搞定遥感影像中的‘小目标’与‘不平衡’难题?

从像素到对象&#xff1a;HANet与SNUNet在遥感影像小目标检测中的实战解析 当洪水退去后的灾损评估卫星图上&#xff0c;那些被冲毁的农舍屋顶往往只占据几个像素&#xff1b;在城市违建监测中&#xff0c;新增的违章建筑可能只是高分辨率影像中的微小色块。这些"小目标&q…...

ViGEmBus虚拟手柄驱动:Windows系统控制器仿真解决方案与开发者指南

ViGEmBus虚拟手柄驱动&#xff1a;Windows系统控制器仿真解决方案与开发者指南 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 核心价值解析&#xff1a;重新…...

Magisk Root技术实践指南:从决策评估到风险管控的完整解决方案

Magisk Root技术实践指南&#xff1a;从决策评估到风险管控的完整解决方案 【免费下载链接】Magisk The Magic Mask for Android 项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk 一、决策评估&#xff1a;场景化应用与技术选型 1.1 设备Root需求分析矩阵 在…...

yolo系列演进分析

YOLO(You Only Look Once)作为计算机视觉领域最具影响力的目标检测算法系列之一,自2016年首次提出以来经历了持续的技术革新与架构演进。从最初的YOLOv1到2026年最新发布的YOLO26,这一系列不仅实现了从"单阶段检测"到"端到端推理"的范式转变,更在速度…...

OpenClaw浏览器自动化:Qwen3-VL:30B爬取图文数据到Notion

OpenClaw浏览器自动化&#xff1a;Qwen3-VL:30B爬取图文数据到Notion 1. 为什么需要自动化数据收集 上周我需要整理一批行业报告中的关键图表和结论&#xff0c;手动复制粘贴了3个小时后&#xff0c;突然意识到&#xff1a;这种重复性工作正是AI该解决的问题。于是我开始尝试…...

Z-Image i2L生成效果对比:不同参数下的图像质量分析

Z-Image i2L生成效果对比&#xff1a;不同参数下的图像质量分析 1. 引言 最近试用了Z-Image i2L这个模型&#xff0c;真的被它的效果惊艳到了。这个模型最厉害的地方在于&#xff0c;你只需要给它几张风格相似的图片&#xff0c;它就能直接生成一个LoRA模型&#xff0c;让你可…...

SEO_10个简单有效的SEO技巧,快速提升网站排名

SEO:10个简单有效的SEO技巧&#xff0c;快速提升网站排名 在当今互联网时代&#xff0c;网站的排名直接关系到它的流量和盈利能力。SEO&#xff08;搜索引擎优化&#xff09;技巧就是为了帮助网站在搜索引擎中获得更高的排名。本文将分享十个简单有效的SEO技巧&#xff0c;帮助…...

用Python手把手实现乘幂法:从理论到代码,5分钟搞定矩阵最大特征值计算

用Python手把手实现乘幂法&#xff1a;从理论到代码&#xff0c;5分钟搞定矩阵最大特征值计算 矩阵特征值计算是线性代数的核心问题之一&#xff0c;在机器学习、物理模拟和工程分析中无处不在。但当你面对一个实际项目时&#xff0c;真正需要的往往不是繁琐的数学推导&#xf…...