# 解题思路 这题不难,主要就是考虑如何判重,如果直接在 $9$ 个位置上都比较一遍的话。你会得到下面的好成绩 所以考虑另一种方法: 将九个位置压成一个整数,并且因为只有九个数,所以不会超出 $int$,用 $set$ 判重,写一个 BFS 就过了 # 附上代码 ...
分类:
其他好文 时间:
2018-09-11 11:24:47
阅读次数:
141
<题目链接> 题目大意:给出一个3×3的矩阵(包含1~8数字和一个字母x),经过一些移动格子上的数后得到连续的1~8,最后一格是x,要求最小移动步数。 解题分析:本题用BFS来寻找路径,为了降低复杂度,用BFS从最终的目标状态开始处理,将所有搜索到状态以及对应的路径打表记录,然后对于输入的矩阵,直接 ...
分类:
其他好文 时间:
2018-09-06 10:51:53
阅读次数:
151
题目来源: http://poj.org/problem?id=1077 题目大意: 给你一个由1到8和x组成的3*3矩阵,x每次可以上下左右四个方向交换。求一条路径,得到12345678x这样的矩阵。若没有路径,则输出unsolvable。 经典的八数码问题。 这题我用A*算法做的。推荐一篇博客, ...
分类:
其他好文 时间:
2018-08-30 02:05:34
阅读次数:
206
```cpp // Rujia Liu #include #include #include using namespace std; typedef int State[9]; const int MAXSTATE = 1000000; State st[MAXSTATE], goal={1,2,... ...
分类:
其他好文 时间:
2018-08-22 22:54:19
阅读次数:
312
本题有写法好几个写法,但主要思路是BFS: No。1 采用双向宽搜,分别从起始态和结束态进行宽搜,暴力判重。如果只进行单向会超时。 No。2 采用hash进行判重,宽搜采用单向就可以AC。 No。3 运用康拓展开进行判重,即使采用单向宽搜时间效率也很高。 ...
分类:
其他好文 时间:
2018-07-14 22:18:49
阅读次数:
291
哈希HASH的本质思想类似于映射、离散化。 哈希,通过给不同字符赋不同的值、并且钦定一个进制K和模数,从而实现一个字符串到一个模意义下的K进制数上。 它的主要目的是判重,用于DFS、BFS判重(八数码),字符串判断相等、出现等等。 本篇总结字符串哈希以及一些应用例题。 为什要用字符串哈希? 因为取出 ...
分类:
其他好文 时间:
2018-06-08 00:32:46
阅读次数:
387
用STL中的queue,map,string写了个广搜,用一个string保存状态(见代码)注:STL比较慢,可以做一些优化(或者开O2) ...
分类:
其他好文 时间:
2018-05-07 22:46:52
阅读次数:
171
附上题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1043 我用了两种方法AC。第一种是双向广搜 + 逆序对奇偶剪枝 + 康拓展开 。 第二种方法是打表法,先用bfs搜素出所有路径,保存。当然还有康拓展开。第二种速度快多了。 第一种 用时 1880MS ...
分类:
其他好文 时间:
2018-03-24 20:36:25
阅读次数:
190
Android精选源码 " 一个动画效果的播放控件,播放,暂停,停止之间的动画 " " 用 RxJava 实现 Android 指纹识别代码 " " Android仿滴滴打车(滴滴UI)源码 " " Android高仿哔哩哔哩动画客户端bilibili源码 " " android八数码拼图游戏源码 ...
分类:
移动开发 时间:
2018-03-06 17:14:05
阅读次数:
220