为了做这个题,我足足花了一个晚自习,才处理好所有的细节问题,太琐碎了 现在复习知识的同时,也会穿插上一些曾经学过但是了解不深的问题,比如a* a*最重要的就是通过估价函数来大大优化搜索,估价函数是整个a*的灵魂,通过估价函数,可以省去大量的不必要的状态,是一个非常高效的算法。 其他话都写在代码里了, ...
分类:
其他好文 时间:
2017-10-14 22:30:37
阅读次数:
157
BFS实现8数码问题,思考与总结 今天中午学习了二叉树的线索化与线索化遍历,突然有一种想实现八数码问题的冲动,因为它的初级解决方式是BFS(广度优先搜索算法)。于是我开始编程。 没想到一编就是一个下午,一直编到了晚上8点。期间出现了很多问题。 1.拷贝函数拷贝完之后,对目标对象进行的操作,会影响源对 ...
分类:
其他好文 时间:
2017-10-03 23:20:18
阅读次数:
331
题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的 ...
分类:
其他好文 时间:
2017-10-01 19:28:27
阅读次数:
214
北京第二天 今天上午的饭菜很赞,只是中午时间太紧了。上午测试,108分,40名,第二题打的时间太长了,都没来得及调试。T1当时想到了最大连续子段和,然而打挂了,就没再深入去想。T2着实很恶心啊,话说我为啥同样的语句复制了好几遍而不打一个函数呢?脑抽日常。T3好像是个不太难的BFS,类似那些八数码什么 ...
分类:
其他好文 时间:
2017-10-01 19:02:34
阅读次数:
139
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1043 题目大意:传统八数码问题 解题思路:就是从“12345678x”这个终点状态开始反向BFS,将各个状态记录下来,因为数字太大所以用康托展开将数字离散化。 代码: ...
分类:
其他好文 时间:
2017-09-16 01:14:35
阅读次数:
209
1368: 八数码 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从 ...
分类:
其他好文 时间:
2017-09-12 15:46:19
阅读次数:
193
题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的 ...
分类:
其他好文 时间:
2017-09-06 22:04:58
阅读次数:
174
题目链接 https://vjudge.net/problem/HDU-1043 经典的八数码问题,学过算法的老哥都会拿它练搜索 题意: 给出每行一组的数据,每组数据代表3*3的八数码表,要求程序复原为初始状态 思路: 参加网站比赛时拿到此题目,因为之前写过八数码问题,心中暗喜,于是写出一套暴力bf ...
分类:
其他好文 时间:
2017-08-23 22:12:43
阅读次数:
216
P1379 八数码难题 P1379 八数码难题 P1379 八数码难题 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为12 ...
分类:
其他好文 时间:
2017-08-23 20:44:17
阅读次数:
134
恢复内容开始 上一次介绍过dbfs版本,这次来介绍idA*版本。 首先要理解idA*算法的思想,是将迭代加深与A*的结合,将估价函数h(n)作为迭代的限制值,进行dfs。 (A*和迭代加深的介绍等有时间再写出来吧) 对所有点(除0以外的)进行曼哈顿距离计算(目标状态到初始状态),h(n)为当前节点的 ...
分类:
其他好文 时间:
2017-08-19 23:38:45
阅读次数:
220