爬山算法爬山算法是一种局部择优的方法,采用启发式方法,是对深度优先搜索的一种改进,它利用反馈信息帮助生成解的决策。爬山算法一般存在以下问题:局部最大高地:也称为平顶,搜索一旦到达高地,就无法确定搜索最佳方向,会产生随机走动,使得搜索效率降低。山脊:搜索可能会在山脊的两面来回震荡,前进步伐很小。解决方...
分类:
其他好文 时间:
2014-08-10 15:33:20
阅读次数:
282
知识点:dfs(深度优先搜索)题解:基本的dfs搜索判断可行性问题。一般的dfs搜索,如果不加剪枝,复杂度是指数级的,所以必须要能发掘出优秀的剪枝条件;在本题中,一般有如下剪枝:①:所有线段的长度之和必须为4的倍数;②:搜索之前,把所有线段按从大到小排序,因为长度越长,在拼凑时的灵活度就越低;③:当...
分类:
其他好文 时间:
2014-08-09 18:25:48
阅读次数:
249
这是做的第一道BFS,很基础很简单的题目广度优先搜索算法如下:(用QUEUE)(1) 把初始节点S0放入Open表中;(2) 如果Open表为空,则问题无解,失败退出;(3) 把Open表的第一个节点取出放入Closed表,并记该节点为n;(4) 考察节点n是否为目标节点。若是,则得到问题的解,成功...
分类:
其他好文 时间:
2014-08-09 02:32:26
阅读次数:
307
很多游戏特别是rts,rpg类游戏,都需要用到寻路。寻路算法有深度优先搜索(DFS),广度优先搜索(BFS),A星算法等,而A星算法是一种具备启发性策略的算法,效率是几种算法中最高的,因此也成为游戏中最常用的寻路算法。直入正题:在游戏设计中,地图可以划分为若干大小相同的方块区域(方格),这些方格就是...
分类:
其他好文 时间:
2014-08-08 20:46:46
阅读次数:
184
图有四种存储结构:数组,邻接表,十字链表,邻接多重表。下面以数组为存储结构来实现图的深度优先搜索遍历和广度优先搜索遍历。其中广度优先搜索遍历中有用到STL中的queue,注意头文件的包含。具体代码如下:
//图的数组(邻接矩阵)存储表示和深度优先遍历
const int MAX_VERTEX_NUM=20; //最大顶点数
typedef enum {DG,DN,UDG,UDN} Graph...
分类:
其他好文 时间:
2014-08-08 12:39:35
阅读次数:
224
POJ 2196 Computer(搜索-深度优先搜索)
题目大意:
告诉你一棵树,问你某个点最远能到达多远?
解题思路:
先从1号点出发,找出各个点到1号点的距离,最远的那个点必然是树的主枝干上的一点。
从树的主干上的那点出发,距离最远的另一点必然是树主枝干的另一点。
接下来的答案就是每个点到两个主干点的距离取大。...
分类:
其他好文 时间:
2014-08-07 19:07:50
阅读次数:
305
数据结构实验之图论二:基于邻接表的广度优先搜索遍历
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列。(同一个结点的同层邻接点,节点编号小的优先遍历)
输入
输入第一行为整数n...
分类:
其他好文 时间:
2014-08-06 23:10:12
阅读次数:
425
图的遍历也称为搜索,就是从图中某个顶点出发,沿着一些边遍历图中所有的顶点,且每个顶点仅被访问一次,遍历可采取两种不同的方式:深度优先搜索(DFS)和广度优先搜索(BFS)。1.DFS算法思想` 从顶点v出发深度遍历图G的算法 ① 访问v0顶点,置vis[v0]=1,搜索v0未被访问的邻接点w,若.....
分类:
其他好文 时间:
2014-08-04 10:30:47
阅读次数:
305
//使用数组queue[ ]存放结点队列void BFS( ) { head=0; tail=1; queue[head]=首结点的值; while (head<tail) //队列不空 { temp=tail; for (k=head; k<=ta...
分类:
其他好文 时间:
2014-08-03 23:03:16
阅读次数:
250
例3:组合问题输出m个数中取n个数的所有组合。例如m=5,n=3的所有组合为:1 2 31 2 41 2 5 1 3 41 3 51 4 5 2 3 42 3 52 4 5 3 4 5#includeusing namespace std;int m,n,a[10]; //存放每个数void co....
分类:
其他好文 时间:
2014-08-03 20:35:45
阅读次数:
239