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

蓝桥杯-卡片换位

在这里插入图片描述
在这里插入图片描述

solution

有一个测试点没有空格,要特别处理,否则会有一个测试点运行错误!
还有输入数据的规模在变,小心顺手敲错了边界条件

#include<iostream>
#include<string>
#include<queue>
#include<map>
#include<algorithm>
using namespace std;
string start, t;
map<string, int> mp;
int ax, ay, x, y, d, k;
int X[4] = {-1, 1, 0, 0};
int Y[4] = {0, 0, -1, 1};int bfs(string s){queue<string> q;q.push(s);while(!q.empty()){t = q.front();q.pop();if(t.find('A') == ay && t.find('B') == ax) return mp[t];k = t.find(' ');for(int i = 0; i < 4; i++){x = k / 3 + X[i];y = k % 3 + Y[i];if(x < 0 || x >= 2 || y < 0 || y >= 3) continue;d = mp[t];swap(t[k], t[3 * x + y]);if(!mp.count(t)){mp[t] = d + 1;q.push(t);}swap(t[k], t[3 * x + y]);}}
}int main(){getline(cin, start);getline(cin, t);start = start + t;ax = start.find('A');ay = start.find('B');if(start.find(' ') == start.npos) cout << 10;else cout << bfs(start);return 0;
}
http://www.lryc.cn/news/327785.html

相关文章:

  • Unity 布局控制器Content Size Fitter
  • Python的面向对象、封装、继承、多态相关的定义,用法,意义
  • Elasticsearch 向量搜索
  • 2024蓝桥杯每日一题(背包)
  • Redis桌面客户端
  • 让Unity的协程变得简单
  • 2.9 Python缩进规则(包含快捷键)
  • 任务记录.
  • andv vue 实现多张图片上传
  • 使用JMeter+Grafana+Influxdb搭建可视化性能测试监控平台
  • django模板下,vue的使用(前后端不分离)
  • python笔记(7)List(列表)
  • java 抠取红色印章(透明背景)
  • CSS及javascript
  • LeetCode 1997.访问完所有房间的第一天:动态规划(DP)——4行主要代码(不需要什么前缀和)
  • BootsJS上新!一个库解决大部分难题!
  • 智慧公厕,让数据和技术更好服务社会生活
  • Spark基于DPU Snappy压缩算法的异构加速方案
  • 如何使用python链表
  • ADB的主要操作命令及详解
  • 傻瓜式启动关闭重启docker容器的脚本
  • R语言使用dietaryindex包计算NHANES数据多种营养指数(2)
  • Elasticsearch 索引模板、生命周期策略、节点角色
  • buy me a btc 使用数字货币进行打赏赞助
  • Solidity Uniswap V2 Router swapTokensForExactTokens
  • 网络安全渗透测试工具
  • springcloud+nacos服务注册与发现
  • 【C++程序员的自我修炼】基础语法篇(一)
  • 小狐狸JSON-RPC:钱包连接,断开连接,监听地址改变
  • union在c语言中什么用途