搜索 Seven Puzzle (AOJ 0121 bfs)

Abaqus CEL分析必备:Hypermesh网格导出与inp文件合并技巧 本文详细介绍了在Abaqus CEL分析中使用Hypermesh生成六面体网格并合并多组件inp文件的完整流程。从单元类型设置(EC3D8R)、网格质量优化到inp文件合并技巧,提供了一套解决流固耦合仿真前处理痛点的实战方案,帮助工程师高效完成复杂CEL分析任务。 阅读详情
#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);
    }
}

脑机接口(BCI)从原理到开发实战 10|脑控外设:用脑电波控制机械臂/游戏 摘要: 脑机接口(BCI)的“最后一公里”是将分类结果转化为实际动作的关键环节。本文介绍如何通过指令映射、硬件通信和执行反馈实现脑控外设,包括离散/连续控制策略、防抖处理及串口/蓝牙通信方法。通过两个实战案例(运动想象控制机械臂抓取、P300/SSVEP控制游戏)和完整项目(OpenBCI控制小车),演示了从分类标签到设备动作的完整流程,重点涵盖指令生成算法(多数投票)、Python与Arduino的串口通信集成,为BCI系统落地提供实用解决方案。(149字) 阅读详情

相关推荐

Cursor+Playwright MCP实现UI全自动化,告别繁琐元素定位!

摘要:本文探讨了利用Cursor和PlaywrightMCP实现UI自动化测试的创新方法。通过将AI编程助手与浏览器自动化技术结合,解决了传统UI自动化测试中元素定位繁琐、维护成本高等痛点。文章详细介绍了项目架构设计、AI使用技巧(包括精准提问和编写.mdc规则文档),以及如何实现自然语言测试用例到自动化脚本的转换。最终实现了测试人员只需输入手工测试步骤,AI即可自动生成完整测试代码的智能化流程,并展望了通过Excel表格一键生成测试用例的未来发展方向,为UI自动化测试提供了高效解决方案。

baidu_29774881的博客 2795

Seven Puzzle--AOJ0121

《挑战程序设计竞赛第二版》

小菜鸟博客 354

Android Display Graphics #1 整体框架介绍一

手机屏上显示的内容,2D或3D ,如果是 3D 的,不管是 App 还是游戏,或者简单的图片界面,底层都是通过 GPU、 通过 OpenGL(ES)绘制出来的。是Java层的一个类,提供了一系列API,使用这些API可以实现各种的产品经理要求的效果。显示的不同阶段对这块内存的叫法不同,在上层可以是Window、ANnativeWindow、Surface、SurfaceView、layer、buffer,这些本质上没啥区别,可以广泛意义上理解为用于显示内容的那块内存,只不过各个阶段的操作接口不同。

oDwyane03的博客 1387

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

xiaobin_23134的博客 235

支付逻辑漏洞的八大姿势(上篇)

学习支付漏洞,看这篇文章!!!文章来源:SecHub网络安全社区(本资料仅供学习参考,严禁使用者进行未授权渗透测试!严禁任何形式的转载!

qq_39493066的博客 1358

ICM42670-P嵌入式开发实战:从寄存器配置到姿态解算全解析

本文全面解析ICM42670-P高性能6轴MEMS运动传感器的嵌入式开发实战,涵盖寄存器配置、数据采集滤波、低功耗优化及姿态解算算法。通过详细代码示例和应用案例,帮助开发者快速掌握从硬件对接到姿态跟踪系统的完整开发流程,适用于可穿戴设备和智能家居等低功耗应用场景。

gold的博客 1070

AOJ 0121 Seven Puzzle

编程语言:Java 题目链接:https://onlinejudge.u-aizu.ac.jp/problems/0121 题解:①将整个数据看作是一个八位的字符串; ②任何字符串向”01234567“的转换,可以看作是”01234567“向该字符串的转换,因此只需要在最开始利用BFS计算出”01234567“字符串向其他所有有可能的字符串转移时移动的次数,就可以在输入字符串的时候便得出答案。 ③其中需要注意的点有:交换字符串中两个位置的字符时,可以用原生的repalce,也可以借助StringBuilde

ZDQQQqq的博客 418

17、Nimble 包开发与并行编程指南

本文介绍了Nimble包的开发与版本管理流程,涵盖语义化版本控制规范及发布步骤;深入探讨了Nim中的并行编程基础,包括并发与并行的区别、threads模块与threadpool模块的使用方法及其差异;分析了线程执行的不确定性、线程池的优势,并提供了线程同步和资源管理的实践示例,帮助开发者高效构建稳定、高性能的Nim应用程序。

wine的专栏 57

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表示),与空格相邻(上下左右)的棋子可以移到空格中,该棋子原先位置成为空格。给出一个初始状态(保证可以转移到最终状态),找出一种从初始

ACM_10000h的专栏 1522

Google Earth Engine:计算逐年全球潜在蒸发量(PET)的 ERA 数据

通过获取温度、湿度和降水数据,并使用Penman-Monteith公式,我们可以得到每年的潜在蒸发量。在本文中,我们将使用Google Earth Engine平台和ERA(欧洲再分析气象数据集)数据来计算逐年全球的潜在蒸发量(PET)。接下来,我们需要对ERA数据进行预处理,以获取我们需要的潜在蒸发量数据。有了温度、湿度和降水数据,我们可以使用Penman-Monteith公式来计算每年的潜在蒸发量。最后,我们可以将计算得到的潜在蒸发量数据进行可视化,以便更好地理解全球的水汽蒸发情况。

VwajAlgorithm的博客 734

科研问答:医药类本科生(临床、中医、中药与护理)本科阶段是否需要开展科研学习?

医药类本科生(临床、中医、中药与护理)本科阶段是否需要开展科研学习?

MD Code 1509

Aoj-0121 Seven Puzzle

[题目链接] 思路: 反向搜索bfs,预处理每个状态结果,如果对每个数据进行bfs,会T掉。 queue&lt; P&gt;记录状态和0的位置。 map&lt; string,int&gt; 记录已经搜索到的状态和步数,同时会可以判断此状态是否已入列 &lt; 真的好难想啊啊啊啊~~~&gt;。 还有可好奇gets会CE,cin.getline会TLE,搞不懂,好气哦~ 代码: #in...

ó 309

DPABISurf使用教材

严老师的官方教程:http://rfmri.org/Course DPABISurf版本:dpabi50docker.tar.gz MATLAB版本:2018b 一、数据准备 (1)如果是数据的DICOM格式,整理成以下格式(注意文件夹的命名方式): 如果觉得不是很清楚,可以在官网下载Demo数据(http://rfmri.org/DemoData),参照里面的文件格式进行整理即可。 (2)如果数据是nii格式,整理成以下格式: 这里没有使用官网的demo数据进行学习,而是..

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 8521

AOJ 0121 Seven Puzzle (bfs)

题意: 给你8个格子 0那个格子可以上下左右的动 - - 一开始以为所有格子都能动 毕竟日文题目 那么就很像8数码问题了 由其他格子到“01234567” - - 如果挨个bfs的话 case多肯定TLE 那么思维反向一下 由“01234567”到其他状态 把每个最小步数存到map中 对于每个case直接查找就好了 AC代码如下: // // AOJ 0121 Seven Puz

TaoSama's Microcosm 497

复分析 阿尔福斯(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 のカードと位置を交換

海岛Blog 538

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 ...

bu_shushu的博客 382

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的某一数字,不同棋子上标的数

希望的专栏 928

Seven Puzzle AOJ 0121宽度优先搜索

1.题目原文 题目的链接:AOJ0121 Seven Puzzle 日本的oj,题目是日文  ┳━┳ノ(°_°ノ)  Seven Puzzle Time Limit : 1 sec, Memory Limit : 65536 KB 7 パズル 7 パズルは 8 つの正方形のカードとこれらのカードがぴたりと収まる枠で構成されています。それぞれ

相思作坊半世离殇的博客 1098

【bfs】AOJ 0121 Seven Puzzle

原文 原作者: 相思作坊半世离殇 1.题目原文 题目的链接:AOJ0121 Seven Puzzle 日本的oj,题目是日文  ┳━┳ノ(°_°ノ)  Seven Puzzle Time Limit : 1 sec, Memory Limit : 6...

weixin_44197056的博客 263

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 ...

RPG_Zero的博客 464

AOJ--0121 Seven Puzzle

Seven Puzzle 7パズルは8つの正方形のカードとこれらのカードがぴたりと収まる枠を使って行います。それぞれのカードは互いに区別できるように、0,1,2....7と番号がつけられています。枠には、縦に2個、横に4個のカードを並べることができます。 7パズルを始めるときには、まず枠にすべてのカードを入れます。枠のなかで0のカードだけは、上下左右に隣接するカードと位置を交換することができま

社畜のブログ 849

AOJ 0121 Seven Puzzle (bfs)

题目大意: 有一个4*2的方框,里面随机填充着0-7这8个数。每次可以交换相邻的两个格子里的数。比如: 可以交换为 也可以交换为 最终希望8个数整齐地排列为 求最小的交换次数。 我们用一个struct 来记录状态:struct node { int a[8]; int time; } 然后每一次我们要先找到0的位置然后再更

坏坏的薯片 327

Seven puzzle AOJ0121

7个谜题由8个正方形卡片和它们全部容纳的正方形卡片组成。为了能够将各个卡片分别区分开来,0、1、2…上面写着7和号码。在边框上,你可以将两张卡竖着排列,每张4张卡。 当你开始解谜7时,将所有卡片都放在框框里。只有0个框框可以与上下左右相邻的卡交换位置。例如,如果框的状态在图(a)时,与邻接0卡的右侧的7卡交换位置,成为图(b)的状态。或者,如果与图2a所示的状态0的卡下相邻的两张卡交换位置的话,...

songziyuan_的博客 201

初级篇——穷竭搜索——广度优先搜索 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...

weixin_38894974的博客 279

G - Seven Puzzle(7宫格)AOJ 0121

 G - Seven Puzzle(7宫格)AOJ 0121   Description 7パズルは8つの正方形のカードとこれらのカードがぴたりと収まる枠を使って行います。それぞれのカードは互いに区別できるように、0,1,2....7と番号がつけられています。枠には、縦に2個、横に4個のカードを並べることができます。 7パズルを始めるときには、まず枠にすべてのカードを入れ

CQU_HYX的专栏 1266

AOJ 0121 Seven Puzzle 深搜BFS 解题思路 AC代码C/C++

VJ原题: AOJ 0112 参考: 大佬的代码 getline()函数详解 remove()函数详解 string erase()函数详解 map用法 迭代器及容器自行百度 题意: 7数码问题。在2*4的棋盘上,摆有7个棋子,每个棋子上标有1到7的某一个数字,不同棋子上的数字不相同。棋盘还有一个空格,与空格相邻(上下左右)的棋子可以移动到空格中,该棋子原先位置成为空格。给出一个初始状态(保证可以...

cc2855816075的博客 247

[挑战程序设计竞赛] AOJ 0121 - Seven Puzzle

题意:7数码问题。在2×4的棋盘上,摆有7个棋子,每个棋子上标有1至7的某一数字,不同棋子上标的数字不相同。棋盘上还有一个空格(用0表示),与空格相邻(上下左右)的棋子可以移到空格中,该棋子原先位置成为空格。给出一个初始状态(保证可以转移到最终状态),找出一种从初始状态转变成给定最终状态的移动棋子步数最少的移动步骤。 输入:多组输入,每组8个数,表示初始状态前四个数为第一行从左到右,后四个数

Freeway的博客 1235
上一篇: 素数 hdu 3792 Twin Prime Conjecture
下一篇: Aizu 0121 Seven Puzzle
进阶的小猪
博客等级 码龄11年 2粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值