搜索
黑色的夢
I'm Acmer.
展开
-
hdu1043 Eight 康拓展开+bfs打表
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1043 经典的八数码,一般做法直接bfs,肯定tle。应该用A*剪枝或者打表,我用的是打表,打表更快点。 我的思路是以最终状态为起点进行bfs,同时开个结构体数组来记忆bfs过程中的状态(方向,这个八数码状态的上个状态的结构体数组下标),最终可以回溯打印路径。 同时给定一种状态要能找到他对应的结构体原创 2017-01-14 17:14:44 · 734 阅读 · 0 评论 -
hdu1667The Rotation Game 迭代深搜IDA*
题目链接:http://acm.hdu.edu.cn/data/images/1667-1.jpg 题目是这个棋盘里面摆放着8个1,8个2和8个3,每一步你可以沿着A、B、 C、D、E、F、G、H任意一个方向移动该字母所指的长块。移出边界的小块会从 另一端移进来。如最左边的棋盘经过操作A,就会变成中间的棋盘布局, 再进行操作C,就会变成右边的棋盘布局。 要使的最中间的8个格子的数字原创 2017-01-14 17:43:54 · 629 阅读 · 0 评论 -
hdu2234无题I 迭代深搜IDA*
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2234 题目意思是一个4*4矩阵里面有4个1,4个2,4个3,4个4,每一步可以将矩阵的某一行向左移一步或向右移一步,或者将矩阵的某一列向上或向下移一步,问能是否在5步内使矩阵的每一行或者每一列都一样,如果在5步内的话,输出确定的最小步数,大于5步输出-1。 依然是迭代深搜,同时A*剪枝,考虑移动一行原创 2017-01-14 19:01:05 · 677 阅读 · 0 评论 -
HDU1560 DNA sequence 迭代深搜IDA*
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1560 题意是给你一些DNA串,要你输出一串字符串使得它能包含所有的DNA串的序列,要求其字典序最小,长度最短。 代码:#include<cstdio>#include<cstring>#include<string>#include<queue>#include<cmath>#includ原创 2017-01-14 19:08:06 · 706 阅读 · 0 评论 -
hdu1401 Solitaire双向bfs
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1401 题意:给你一个8*8的棋盘以及棋盘上有四个棋子,再给你四个棋子的位置,问你之前的四个棋子八步之内能不能走到后面的棋子的位置,一步指的是单个棋子上下左右移动到相邻的空的位置,或者若上下左右有棋子,跳过相邻的棋子到此方向的下一格(如果此处没有棋子)。 四个棋子,四个位置,可以开一个8维数组来标记这原创 2017-01-15 13:47:02 · 488 阅读 · 0 评论 -
hdu3567 Eight II 康拓展开+打表+路径回溯+映射
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3567 题意:给你一个八数码的起始和终止状态,让你打印路径,要求字典序最小,长度最短,保证输入数据必有解。思路:2000ms 200组数据,平均10ms一组数据。用A*的话,可能会tle,而且还不能保证字典序最小。所以直接打表,考虑到起点,终点不定,所以需要映射,比如我把起点564178X23映射成1原创 2017-01-15 15:23:30 · 1172 阅读 · 0 评论