[NOIP2013 提高组] 华容道
时间:2021-08-20
本文章向大家介绍[NOIP2013 提高组] 华容道,主要包括[NOIP2013 提高组] 华容道使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
这道题记录状态的思想挺好的
假如棋子在(i,j):
那么它上面空格的编号为((i-1)*4+(j-1)*4+0)
那么它下面空格的编号为((i-1)*4+(j-1)*4+1)
那么它左面空格的编号为((i-1)*4+(j-1)*4+2)
那么它右面空格的编号为((i-1)*4+(j-1)*4+3)
↑手动分割
所以俺们要记录的
①在不动棋子本身的情况下,棋子周围空格乱转的最小步数(在可行情况下)
//伪代码 (x,y)棋子位置 for i from 0 to 3 for j from i+1 to 3 int step=bfs((x-1)*4+(y-1)*4+i,(x-1)*4+(y-1)*4+j); add((x-1)*4+(y-1)*4+i,(x-1)*4+(y-1)*4+j,step); add((x-1)*4+(y-1)*4+j,(x-1)*4+(y-1)*4+i,step);
②移动棋子(分为左右移动与上下运动)(在可行情况下)
//伪代码 (x,y)棋子位置 add((x-1)*4+(y-1)*4+1,x*4+(y-1)*4+0,1);//上到下 add((x-1)*4+(y-1)*4+0,(x-2)*4+(y-1)*4+1,1);//下到上 add((x-1)*4+(y-1)*4+3,(x-1)*4+y*4+2,1);//左到右 add((x-1)*4+(y-1)*4+2,(x-1)*4+(y-2)*4+3,1);//右到左
求路径步骤:将空格移到起始棋子的上下左右的步数+开始最短路+在结束棋子上下左右空格中寻找答案
END
没打代码,嘿嘿(again)
原文地址:https://www.cnblogs.com/latent-Lin/p/15168200.html
- HelloWorld,我的第一趟旅程出发点
- Android OpenGL开发实践 - GLSurfaceView对摄像头数据的再处理
- 走进科学:对七夕“超级病毒”XX神器的逆向分析
- 机器学习 - 朴素贝叶斯分类器的意见和文本挖掘
- 认知指纹:颠覆性的身份认证技术
- 跟我学姿势:极客教你如何科学的看电影
- Discuz 5.x/6.x/7.x投票SQL注入分析
- 论如何高效的挖掘漏洞
- Rxjava + retrofit + dagger2 + mvp搭建Android框架
- 走进科学:如何正确的隐藏自己的行踪
- 比特儿(Bter.com) 比特币交易平台被盗事件全解析
- BitTorrent Bleep:无法被监控的聊天软件
- QQ蠕虫的行为检测方法
- 趋势OfficeScan系列产品漏洞分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- [已解决]报错UnicodeDecodeError
- [已解决]报错Could not install packages due to an EnvironmentError
- 用Cython加速Python代码
- [已解决]windows安装docker的问题
- 使用VBA达到vlookup效果
- Excel简单应用
- Pandas异常值处理
- Pandas重复值处理
- Pandas缺失值处理
- Pandas分类数据和顺序数据转换为标志变量
- 使用ProxyBroker构建代理池
- 国内pypi镜像
- [已解决]Series object has no attribute explode
- 2019年Pandas官方用户调研
- 刚刚!程序员用力过猛,燃起来了!