码迷,mamicode.com
首页 >  
搜索关键字:bfs dfs    ( 14889个结果
HDU 1484 Basic wall maze (dfs + 记忆化)
题意:给定一张地图,并且给定起点和终点,求起点到终点的最短距离,地图上有墙,与以往的题目不同的是,以往的题目障碍物都是在格子上,但是本题的障碍物墙是在格子与格子的边界线上,所以在输入的时候就要进行预处理下,将墙的位置转化为相邻格子的东西南北方向墙的状态,所以使用了一个3为数组来记录地图的信息map[x][y][0]-map[x][y][3] 分别表示坐标为x,y的格子的四个方向墙的情况,0为没墙,1为有墙,然后一个dfs找到最短路,以及每个点的前驱节点,最后打印路径。代码中的注释很详细。题目本身很简单,就是...
分类:其他好文   时间:2014-05-09 02:19:55    阅读次数:454
2014省赛大总结(一) DFS 与 BFS
第一部分:DFS         DFS(深度优先搜索),深度优先搜索法与回溯法差不多,主要的区别是回溯法在求解过程中不保留完整的树结构,而深度优先搜索则记下完整的搜索树,搜索树起记录解路径和状态判重的作用。为了减少存储空间,在深度优先搜索中,用标志的方法记录访问过的状态,这种处理方法使得深度优先搜索法与回溯法没什么区别了。         深度优先搜索所遵循的搜索策略是尽可能“深”地搜索图。...
分类:其他好文   时间:2014-05-09 01:49:49    阅读次数:304
LeetCode --Binary Tree Level Order Traversal II
题目链接在这题各种RE和WA。 方法上就是BFS, 还是基础不扎实的原因,很明显的一点就是这里使用二维vector, 开始的时候我竟然没有给ans分配空间,然后直接push_back, 导致RE到死。这点是必须引起注意的!附上代码: 1 /** 2 * Definition for binary ....
分类:其他好文   时间:2014-05-08 18:00:37    阅读次数:292
HDU 1010 Tempter of Bone DFS + 奇偶剪枝
奇偶剪枝: 对于从起始点 s 到达 终点 e,走且只走 t 步的可达性问题的一种剪枝策略。 如下列矩阵 : 从任意 0 到达 任意 0,所需步数均为偶数,到达任意 1 ,均为奇数。反之亦然 所以有,若s走且只走 t 步可到达e,则必有t >= abs(s.x - e.x) + abs(s.y - e.y),且 (t&1) == ((abs(s.x - e.x) + abs(s.y - ...
分类:其他好文   时间:2014-05-08 17:31:15    阅读次数:305
HDU 1195 Open the Lock
双向BFS: 分别在 起点 和 终点同时进行BFS。 一般地,BFS随着层数的增加,状态数会越来越多,也就是状态数与层数呈正相关。如下图,: 若从两端同时进行BFS ,则有 显然减少的哪一些区域即为减掉的那些不必要的状态。 #include #include #include #include #include #include #include #include ...
分类:其他好文   时间:2014-05-08 17:16:12    阅读次数:300
leetcode第一刷_Minimum Depth of Binary Tree
很简单的题目,不过还是觉得要说一下。最小深度,很快想到bfs,层序遍历嘛。本科的时候实在是没写过多少代码,一开始居然想不到怎么保存一层的信息。后来想到可以压入一个特殊的对象,每次到达这个对象就知道是一层了。我用的是空指针,觉得这个适用性还是不错的。一层的节点入队结束后,应该压入一个NULL,当一层的节点都处理完,遇到NULL的时候,要在队列尾部再入队一个NULL,这是后一层的分界线嘛。 昨天在另...
分类:其他好文   时间:2014-05-08 11:09:28    阅读次数:315
HDU 4240 Route Redundancy 一条流最大的路径
题目来源:HDU 4240 Route Redundancy 题意:求最大流与一条流最大的路径的比值 前者最大流求出 后者是每一条路的最小值再取大 思路:我用的是dinic 可以在DFS的时候在传递一个参数 表示当前增广路可以通过最大的流量 然后当x==t 到达汇点时 在取他们的最大值 #include #include #include #include #include usi...
分类:其他好文   时间:2014-05-08 10:58:21    阅读次数:319
图的深度优先搜索(DFS)简介与实现(递归与非递归方法)
上一篇刚刚学习了C++图的实现,今天对深度优先搜索(DFS)进行了一定学习,并作出一定实现。在本文中图的实现,以及相应的函数调用(如获得第一个邻接顶点、获得下一个邻接顶点等)均是基于上文中的实现,故如果想参考测试代码,还需导入上文中相应的类定义。关于C++图的实现可参考此处,这里实现了对图的邻接表....
分类:其他好文   时间:2014-05-08 09:06:19    阅读次数:296
2010年山东省第一届ACM大学生程序设计竞赛 Balloons (BFS)
题意 : 找联通块的个数,Saya定义两个相连是|xa-xb| + |ya-yb|≤1 ,但是Kudo定义的相连是|xa-xb|≤1 并且 |ya-yb|≤1。输出按照两种方式数的联通块的各数。思路 : 按照第一种定义方式就只能是上下左右四个位置,而第二种则是周围那8个都是相连的。 1 #incl....
分类:其他好文   时间:2014-05-08 07:26:59    阅读次数:338
深度优先搜索两个实例
参考算法导论第三版中译本,DFS的Pseudocode如下: 1 DFS(G) 2 for each vertex u ∈ G.V 3 u.color = WHITE 4 u.π = NIL 5 time = 0 6 for each ve...
分类:其他好文   时间:2014-05-08 06:44:52    阅读次数:380
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!