#include#include#include#include

using namespacestd;int dir[4] = {-3, 3, -1, 1}; //x, y 上 -3 下 +3 左 -1 右 +1

int fa[10] = { 1, 1, 2, 6, 24};int status[400000]; //记录每种状态//test

int testid = -1;char test[400000][12];structNode{char s[12];intstatus;intpos;intstep;

vectorids;

};voidgetfa(){for(int i = 5; i<=9; ++i){

fa[i]= fa[i-1] *i;

}

}int cantor(char *s){int ans = 0;for(int i=0;i<9;++i){int num = 0;for(int j=i+1;j<9;++j){if(s[j]

}//cout << " num " << num << endl;

ans = ans + num*fa[8-i];

}returnans;

}voidbfs(){

Node beginnode;char end[12], temps[12]; //初始位置

scanf("%s%s", beginnode.s, end);

beginnode.status=cantor(beginnode.s);for(int i=0;i<9;++i){if(beginnode.s[i]=='.'){

beginnode.pos=i;break;

}

}

beginnode.step= 0;int endc =cantor(end);

queueq; beginnode.ids.push_back(++testid);for(int k=0;k<9;++k){

test[testid][k]=beginnode.s[k];

}

q.push(beginnode);

status[beginnode.status]= 1;while(!q.empty()){

Node cur=q.front();//for(int i=0;i<9;++i) cout << cur.s[i];//cout << " " << cur.status << endl;//for(int i=0;i<9;++i){//if(i%3==0){//cout << endl;//}//cout << cur.s[i];//}//cout << endl;//getchar();

q.pop();if(endc ==cur.status){for(int kk=0;kk

cout<

}

cout<

}

cout<

}return;

}

Node addnode;for(int i=0;i<4;++i){int np = cur.pos +dir[i];if(np>=0 && np<=8){for(int j=0;j<9;++j){

addnode.s[j]=cur.s[j];

}

addnode.s[cur.pos]=cur.s[np];

addnode.s[np]=cur.s[cur.pos];

addnode.status=cantor(addnode.s);if(status[addnode.status] == 0){

addnode.pos=np;

addnode.step= cur.step+1;

status[addnode.status]= 1;/

addnode.ids.assign(cur.ids.begin(), cur.ids.end());

addnode.ids.push_back(++testid);for(int k=0;k<9;++k){

test[testid][k]=addnode.s[k];

}

q.push(addnode);

}

}

}

}

printf("-1");

}intmain(){

memset(status,0, sizeof(status));

getfa();

bfs();return 0;

}

蓝桥杯 九宫重排 java_【蓝桥杯】历届试题 九宫重排相关推荐

  1. 历届试题+九宫重排+java_蓝桥杯 历届试题 九宫重排 (bfs+康托展开去重优化)...

    Description 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的 ...

  2. 算法笔记_183:历届试题 九宫重排(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成 ...

  3. 历届试题 九宫重排 广度优先搜索+康拓排序

    历届试题 九宫重排   时间限制:1.0s   内存限制:256.0MB        问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移 ...

  4. 蓝桥杯 历届试题 九宫重排 (bfs+康托展开去重优化)

    Description 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的 ...

  5. 蓝桥杯 历届试题 九宫重排

    问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的局面记为:12 ...

  6. [蓝桥杯][历届试题]九宫重排-双向bfs和map标记

    题目描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的局面记为:12 ...

  7. 蓝桥杯 历届试题 九宫重排

    问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的局面记为:12 ...

  8. 蓝桥杯历届试题-九宫重排

    题目描述 如下面第一个图的九宫格中,放着  1~8  的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的局面记为: ...

  9. 蓝桥杯 地宫寻宝 java_蓝桥杯 地宫寻宝 带缓存的DFS

    历届试题 地宫取宝 时间限制:1.0s   内存限制:256.0MB 问题描写叙述 X 国王有一个地宫宝库. 是 n x m 个格子的矩阵. 每一个格子放一件宝贝. 每一个宝贝贴着价值标签. 地宫的入 ...

  10. 历届试题 九宫重排 (bfs 八数码问题)

    问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的局面记为:12 ...

最新文章

  1. oral_quiz-#求链表中的倒数第K个结点#
  2. EXSI 连接硬件USB pass-through
  3. javascript生成指定范围的随机整数
  4. redis存储的数据类型
  5. 2月上旬全球六大顶级域名最新动态 .COM占73.3%
  6. 如何将ListT转换相应的Html(xsl动态转换)(一)
  7. idea mac 查找文件快捷键_idea for mac 最全快捷键整理
  8. 微服务升级_SpringCloud Alibaba工作笔记0013---SpringCloud Alibaba简介
  9. 关于使用Aptana+Pydev构建Python开发环境(Django)
  10. Vue学习之旅Part3:Vue的全局过滤器和私有过滤器
  11. Python面向对象基础(下)—Python Day9
  12. 怎么解决电脑USB接口不识别U盘
  13. 小米node2红外_小米监控open-falcon-0.2安装部署详细配置
  14. Python 浮点数的舍入,round与decimal舍入方式
  15. 早期中国文明内生性演进的内在逻辑阐释
  16. 老男孩Python全栈9期视频完整版
  17. 动态内存的申请和非动态内存的申请_英国:国内双非学生,非相关背景,能申请英国卡迪夫大学计算机硕士课程吗?申请难度大吗?附案例分享...
  18. 华信mysql数据恢复_华信安卓手机数据恢复程序3.0
  19. mount: special device /dev/vgdata/lv_ora does not exist,centos系统LV status状态为Not avaliable问题排查及处理
  20. 再来 20 个免费的 Bootstrap 的后台管理模板

热门文章

  1. 基于java的家庭收支管理系统
  2. 联想一键恢复不能用的情况下,win8无缝升级win10的方法
  3. 研究OCL功率放大电路的输出功率和效率
  4. pix4d无人机影像处理_pix4dmapper-pix4dmapper(无人机数据和航空影像处理)3.2.23官方版下载 - 华彩软件站...
  5. maven配置多个中央仓库
  6. 都是蹭热点,差距咋就这么大呢?| 拍者手记
  7. nginx 进行 https 反向代理 nextcloud 后 APP 不能访问的解决办法
  8. 阿里云天池python-task3
  9. 阿里天池-python训练营task1
  10. 逻辑越权漏洞-水平垂直越权