图案解锁是智能手机一项常用的功能。你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点。这些划过的点所组成的有向折线,如果与预设的折线在图案、方向上都一致,那么手机将解锁。两个点相邻当且仅当以这两个点为端点的线段上不存在尚未经过的点。此外,这条折线还需要至少经过4个点。
有些人可能有和我一样的疑问,在这小小的9个点中,图案密码总共有多少种形式呢?今天我就使用深度优先搜索...
分类:
移动开发 时间:
2015-03-03 09:59:30
阅读次数:
245
引言
回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。用回溯算法解决问题的一般步骤为:
1、定义一个解空间,它包含问题的解。
2、利用适于搜索的方法组织解空间。
3、利用深度优先法搜索解空间。
4、利用限界函数避免移动到不可能产生解的子空间。
问题的解空间通常是在搜索问题的解的过程中动态产生的,这是回溯...
分类:
编程语言 时间:
2015-02-27 13:35:14
阅读次数:
149
转自tangjz的博客...基础算法模拟搜索广度优先搜索(BFS)优化:双向BFS深度优先搜索(DFS)优化:折半DFS迭代加深搜索(IDS)启发式搜索(Astar)优化:IDAstar优化:剪枝、位运算排序冒泡排序/选择排序基数排序/桶排序计数排序插入排序/希尔排序快速排序归并排序/求逆序对数堆排...
分类:
编程语言 时间:
2015-02-23 10:50:21
阅读次数:
330
深搜算法对于程序员来讲是必会的基础,不仅要会,更要熟练。ACM竞赛中,深搜也牢牢占据着很重要的一部分。本文用显式栈(非递归)实现了图的深度优先遍历,希望大家可以相互学习。 栈实现的基本思路是将一个节点所有未被访问的“邻居”(即“一层邻居节点”)踹入栈中“待用”,然后围绕顶部节点猛攻,每个节点被...
分类:
编程语言 时间:
2015-02-20 15:15:42
阅读次数:
247
#include #include #include #include using namespace std;#define MAX 100#define LENGTH(a) (sizeof(a) / sizeof(a[0]))int visited[MAX];typedef struct _gr...
分类:
编程语言 时间:
2015-02-20 10:53:33
阅读次数:
220
将问题的各状态之间的转移关系描述为一个图,则深度优先搜索遍历整个图的框架为:Dfs(v) {if( v 访问过)return;将v标记为访问过;对和v相邻的每个点u: Dfs(u);}int main() {while(在图中能找到未访问过的点 k) Dfs(k);}例题:POJ1164The C....
分类:
其他好文 时间:
2015-02-18 11:49:14
阅读次数:
192
给定n*m的方格,每个小格子里有A~Z的字母,代表一种颜色,问这个n*m的方格里是否包含一个颜色相同的环.枚举方格中的每一个格子以其作为起点进行深度优先遍历,看是否能回到起点,能的话就能找到这么一个环,否则就不行.判断是否回到起点的一个小技巧是:先记录下起点位置,深搜的过程将路径给'堵'住,如果到达...
分类:
其他好文 时间:
2015-02-11 20:36:16
阅读次数:
215
中序遍历(左中右)普通树有两种遍历方式: 深度优先遍历。 先根遍历 –> 二叉树中的先序遍历(中左右) 后根遍历 –> 二叉树中的后序遍历(左右中) 作为树的特例,二叉树还有一种特殊的遍历方式:中序遍历(左中右) 宽度优先遍历。 二叉树的三种遍历方式: 先序遍历(中左右) 中序遍历(左中右) 后序遍...
分类:
其他好文 时间:
2015-02-10 13:11:25
阅读次数:
188
树结构的深度优先遍历是应用中常见的问题 在实际项目中,多叉树出现的比较普遍,常用来存储类似字典词条的路径信息。 多叉树对于在一个序列中找到前缀匹配的所有路径是可行的选择,例如找到一段文字中所有前缀匹配...
分类:
其他好文 时间:
2015-02-08 19:32:09
阅读次数:
2048
这道题在小白书中的分类是动态规划,把题AC了之后在网上看解题报告后,多数解法也是DAG上的动态规划。但其实一个简单的深度优先就能解决问题了。首先将每数从大到小排序,再将各组按照排序后的第一个数字的大小进行从大到小排序。需要注意的是,记录各组数据的编号也要和数进行同步的排序。
#include
#include
#include
#include
#include
using names...
分类:
其他好文 时间:
2015-02-05 11:23:15
阅读次数:
118