#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<map>
#include<iostream>
#include<queue>
using namespace std;
map<string,int>gmap;
int a[2][4];
int b[2][4];
int vis[4][2]={1,0,0,1,0,-1,-1,0};
struct text
{
int a[2][4];
}st,tt,start;
queue<text> q;
char s[9];
char ss[9];
int temp=0;
int cnt=1;
bool check(int x,int y)
{
if(x<0||y<0||x>=2||y>=4)
return false;
return true;
}
void bfs()
{
while(!q.empty())
{
st=q.front();
q.pop();
int x,y;
for(int i=0;i<2;i++)
{
for(int j=0;j<4;j++)
{
if(st.a[i][j]==0)
{
x=i;
y=j;
}
a[i][j]=st.a[i][j];
ss[i*4+j]=st.a[i][j]+'0';
}
}
for(int i=0;i<4;i++)
{
for(int j=0;j<2;j++)
{
int k=x+vis[i][0];
int l=y+vis[i][1];
if(check(k,l))
{
int xx=a[x][y];
a[x][y]=a[k][l];
a[k][l]=xx;
for(int i=0;i<2;i++)
{
for(int j=0;j<4;j++)
{
s[i*4+j]=a[i][j]+'0';
tt.a[i][j]=a[i][j];
}
}
s[8]='\0';
if(!gmap[s]>0)
{
gmap[s]=gmap[ss]+1;
q.push(tt);
}
xx=a[x][y];
a[x][y]=a[k][l];
a[k][l]=xx;
}
}
}
}
}
int main()
{
for(int i=0;i<8;i++)
a[i/4][i%4]=i;
for(int i=0;i<2;i++)
{
for(int j=0;j<4;j++)
start.a[i][j]=a[i][j];
}
for(int i=0;i<2;i++)
{
for(int j=0;j<4;j++)
{
s[i*4+j]=start.a[i][j]+'0';
}
}
s[8]='\0';
gmap[s]=1;
q.push(start);
bfs();//预处理 将结果用map<string,int >存储
while(~scanf("%d",&a[0][0]))
{
for(int i=1;i<4;i++)
scanf("%d",&a[0][i]);
for(int i=0;i<4;i++)
scanf("%d",&a[1][i]);
for(int i=0;i<2;i++)
{
for(int j=0;j<4;j++)
{
s[i*4+j]=a[i][j]+'0';
}
}
s[8]='\0';
// puts(s);
printf("%d\n",gmap[s]-1);
}
}相关推荐
Cursor+Playwright MCP实现UI全自动化,告别繁琐元素定位!
摘要:本文探讨了利用Cursor和PlaywrightMCP实现UI自动化测试的创新方法。通过将AI编程助手与浏览器自动化技术结合,解决了传统UI自动化测试中元素定位繁琐、维护成本高等痛点。文章详细介绍了项目架构设计、AI使用技巧(包括精准提问和编写.mdc规则文档),以及如何实现自然语言测试用例到自动化脚本的转换。最终实现了测试人员只需输入手工测试步骤,AI即可自动生成完整测试代码的智能化流程,并展望了通过Excel表格一键生成测试用例的未来发展方向,为UI自动化测试提供了高效解决方案。
Seven Puzzle--AOJ0121
《挑战程序设计竞赛第二版》
Android Display Graphics #1 整体框架介绍一
手机屏上显示的内容,2D或3D ,如果是 3D 的,不管是 App 还是游戏,或者简单的图片界面,底层都是通过 GPU、 通过 OpenGL(ES)绘制出来的。是Java层的一个类,提供了一系列API,使用这些API可以实现各种的产品经理要求的效果。显示的不同阶段对这块内存的叫法不同,在上层可以是Window、ANnativeWindow、Surface、SurfaceView、layer、buffer,这些本质上没啥区别,可以广泛意义上理解为用于显示内容的那块内存,只不过各个阶段的操作接口不同。
AOJ 0121: Seven Puzzle
自己没想出来,看了其他人的思路 思路:用bfs和逆向处理 1、用bfs逆向推理出从终点到所有的起点所需的距离(用map表示) 2、用map进行查找 #include <cstdio> #include <cstring> #include <stack> #include <queue> #include <algorithm> #include<iostream> #include<map> using namespa
支付逻辑漏洞的八大姿势(上篇)
学习支付漏洞,看这篇文章!!!文章来源:SecHub网络安全社区(本资料仅供学习参考,严禁使用者进行未授权渗透测试!严禁任何形式的转载!
ICM42670-P嵌入式开发实战:从寄存器配置到姿态解算全解析
本文全面解析ICM42670-P高性能6轴MEMS运动传感器的嵌入式开发实战,涵盖寄存器配置、数据采集滤波、低功耗优化及姿态解算算法。通过详细代码示例和应用案例,帮助开发者快速掌握从硬件对接到姿态跟踪系统的完整开发流程,适用于可穿戴设备和智能家居等低功耗应用场景。
AOJ 0121 Seven Puzzle
编程语言:Java 题目链接:https://onlinejudge.u-aizu.ac.jp/problems/0121 题解:①将整个数据看作是一个八位的字符串; ②任何字符串向”01234567“的转换,可以看作是”01234567“向该字符串的转换,因此只需要在最开始利用BFS计算出”01234567“字符串向其他所有有可能的字符串转移时移动的次数,就可以在输入字符串的时候便得出答案。 ③其中需要注意的点有:交换字符串中两个位置的字符时,可以用原生的repalce,也可以借助StringBuilde
17、Nimble 包开发与并行编程指南
本文介绍了Nimble包的开发与版本管理流程,涵盖语义化版本控制规范及发布步骤;深入探讨了Nim中的并行编程基础,包括并发与并行的区别、threads模块与threadpool模块的使用方法及其差异;分析了线程执行的不确定性、线程池的优势,并提供了线程同步和资源管理的实践示例,帮助开发者高效构建稳定、高性能的Nim应用程序。
AOJ 0121: Seven Puzzle (BFS DP STL 逆向推理)
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0121 题意:7数码问题。在2×4的棋盘上,摆有7个棋子,每个棋子上标有1至7的某一数字,不同棋子上标的数字不相同。棋盘上还有一个空格(用0表示),与空格相邻(上下左右)的棋子可以移到空格中,该棋子原先位置成为空格。给出一个初始状态(保证可以转移到最终状态),找出一种从初始
Google Earth Engine:计算逐年全球潜在蒸发量(PET)的 ERA 数据
通过获取温度、湿度和降水数据,并使用Penman-Monteith公式,我们可以得到每年的潜在蒸发量。在本文中,我们将使用Google Earth Engine平台和ERA(欧洲再分析气象数据集)数据来计算逐年全球的潜在蒸发量(PET)。接下来,我们需要对ERA数据进行预处理,以获取我们需要的潜在蒸发量数据。有了温度、湿度和降水数据,我们可以使用Penman-Monteith公式来计算每年的潜在蒸发量。最后,我们可以将计算得到的潜在蒸发量数据进行可视化,以便更好地理解全球的水汽蒸发情况。
科研问答:医药类本科生(临床、中医、中药与护理)本科阶段是否需要开展科研学习?
医药类本科生(临床、中医、中药与护理)本科阶段是否需要开展科研学习?
Aoj-0121 Seven Puzzle
[题目链接] 思路: 反向搜索bfs,预处理每个状态结果,如果对每个数据进行bfs,会T掉。 queue< P>记录状态和0的位置。 map< string,int> 记录已经搜索到的状态和步数,同时会可以判断此状态是否已入列 < 真的好难想啊啊啊啊~~~>。 还有可好奇gets会CE,cin.getline会TLE,搞不懂,好气哦~ 代码: #in...
DPABISurf使用教材
严老师的官方教程:http://rfmri.org/Course DPABISurf版本:dpabi50docker.tar.gz MATLAB版本:2018b 一、数据准备 (1)如果是数据的DICOM格式,整理成以下格式(注意文件夹的命名方式): 如果觉得不是很清楚,可以在官网下载Demo数据(http://rfmri.org/DemoData),参照里面的文件格式进行整理即可。 (2)如果数据是nii格式,整理成以下格式: 这里没有使用官网的demo数据进行学习,而是..
AOJ 0121 Seven Puzzle (bfs)
题意: 给你8个格子 0那个格子可以上下左右的动 - - 一开始以为所有格子都能动 毕竟日文题目 那么就很像8数码问题了 由其他格子到“01234567” - - 如果挨个bfs的话 case多肯定TLE 那么思维反向一下 由“01234567”到其他状态 把每个最小步数存到map中 对于每个case直接查找就好了 AC代码如下: // // AOJ 0121 Seven Puz
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
AOJ0121 Seven Puzzle【BFS】
7 パズル 7 パズルは 8 つの正方形のカードとこれらのカードがぴたりと収まる枠で構成されています。それぞれのカードには、互いに区別できるように 0, 1, 2, …, 7 と番号がつけられています。枠には、縦に 2 個、横に 4 個のカードを並べることができます。 7 パズルを始めるときには、まず枠にすべてのカードを入れます。枠のなかで 0 のカードだけは、上下左右に隣接するカードと位置を交換することができます。たとえば、枠の状態が図(a) のときに、0 のカードの右に隣接した、7 のカードと位置を交換
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
【题解】AOJ 0121 Seven Puzzle(BFS)
AOJ 1021 Seven Puzzle https://vjudge.net/problem/Aizu-0121 题意 给你 一个由 0 ~ 7 的数组成的序列,放在一个宽 4 高 2 的矩形里,只能让 0 所在的格子与其相连的格子互换位置,问最少换多少次可以使矩形按顺序排列。(如下图) 输入:多个样例,以文件结束为结束。 输出:每个样例输出一个最短操作数。 Sample 0 1 2 ...
Aoj 0121 Seven Puzzle【bfs】
题目网址: http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0121 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=108221#problem/G 题意:7数码问题。在2×4的棋盘上,摆有7个棋子,每个棋子上标有1至7的某一数字,不同棋子上标的数
Seven Puzzle AOJ 0121宽度优先搜索
1.题目原文 题目的链接:AOJ0121 Seven Puzzle 日本的oj,题目是日文 ┳━┳ノ(°_°ノ) Seven Puzzle Time Limit : 1 sec, Memory Limit : 65536 KB 7 パズル 7 パズルは 8 つの正方形のカードとこれらのカードがぴたりと収まる枠で構成されています。それぞれ
【bfs】AOJ 0121 Seven Puzzle
原文 原作者: 相思作坊半世离殇 1.题目原文 题目的链接:AOJ0121 Seven Puzzle 日本的oj,题目是日文 ┳━┳ノ(°_°ノ) Seven Puzzle Time Limit : 1 sec, Memory Limit : 6...
Seven Puzzle AOJ 0121 反向BFS
7拼图 7数码问题。在2*4的棋盘上,摆有7个棋子,每个棋子上标有1到7的某一个数字,不同棋子上的数字不相同。棋盘还有一个空格,与空格相邻(上下左右)的棋子可以移动到空格中,该棋子原先位置成为空格。给出一个初始状态(保证可以转移到最终状态),找出一种从初始状态转变到给定最终状态的移动棋子最小的步数。 Sample Input 0 1 2 3 4 5 6 7 1 0 2 3 4 5 6 7 7 ...
AOJ--0121 Seven Puzzle
Seven Puzzle 7パズルは8つの正方形のカードとこれらのカードがぴたりと収まる枠を使って行います。それぞれのカードは互いに区別できるように、0,1,2....7と番号がつけられています。枠には、縦に2個、横に4個のカードを並べることができます。 7パズルを始めるときには、まず枠にすべてのカードを入れます。枠のなかで0のカードだけは、上下左右に隣接するカードと位置を交換することができま
AOJ 0121 Seven Puzzle (bfs)
题目大意: 有一个4*2的方框,里面随机填充着0-7这8个数。每次可以交换相邻的两个格子里的数。比如: 可以交换为 也可以交换为 最终希望8个数整齐地排列为 求最小的交换次数。 我们用一个struct 来记录状态:struct node { int a[8]; int time; } 然后每一次我们要先找到0的位置然后再更
Seven puzzle AOJ0121
7个谜题由8个正方形卡片和它们全部容纳的正方形卡片组成。为了能够将各个卡片分别区分开来,0、1、2…上面写着7和号码。在边框上,你可以将两张卡竖着排列,每张4张卡。 当你开始解谜7时,将所有卡片都放在框框里。只有0个框框可以与上下左右相邻的卡交换位置。例如,如果框的状态在图(a)时,与邻接0卡的右侧的7卡交换位置,成为图(b)的状态。或者,如果与图2a所示的状态0的卡下相邻的两张卡交换位置的话,...
初级篇——穷竭搜索——广度优先搜索 aoj 0121 seven puzzle
7 puzzles The 7-puzzle consists of eight square cards and a frame that fits these cards snugly. Each card is numbered 0, 1, 2, …, 7 to distinguish them from each other. You can stack two cards vertica...
G - Seven Puzzle(7宫格)AOJ 0121
G - Seven Puzzle(7宫格)AOJ 0121 Description 7パズルは8つの正方形のカードとこれらのカードがぴたりと収まる枠を使って行います。それぞれのカードは互いに区別できるように、0,1,2....7と番号がつけられています。枠には、縦に2個、横に4個のカードを並べることができます。 7パズルを始めるときには、まず枠にすべてのカードを入れ
AOJ 0121 Seven Puzzle 深搜BFS 解题思路 AC代码C/C++
VJ原题: AOJ 0112 参考: 大佬的代码 getline()函数详解 remove()函数详解 string erase()函数详解 map用法 迭代器及容器自行百度 题意: 7数码问题。在2*4的棋盘上,摆有7个棋子,每个棋子上标有1到7的某一个数字,不同棋子上的数字不相同。棋盘还有一个空格,与空格相邻(上下左右)的棋子可以移动到空格中,该棋子原先位置成为空格。给出一个初始状态(保证可以...
[挑战程序设计竞赛] AOJ 0121 - Seven Puzzle
题意:7数码问题。在2×4的棋盘上,摆有7个棋子,每个棋子上标有1至7的某一数字,不同棋子上标的数字不相同。棋盘上还有一个空格(用0表示),与空格相邻(上下左右)的棋子可以移到空格中,该棋子原先位置成为空格。给出一个初始状态(保证可以转移到最终状态),找出一种从初始状态转变成给定最终状态的移动棋子步数最少的移动步骤。 输入:多组输入,每组8个数,表示初始状态前四个数为第一行从左到右,后四个数
2795



被折叠的 条评论
为什么被折叠?



