码迷,mamicode.com
首页 >  
搜索关键字:bfs dfs 邻接表 邻接矩阵    ( 16210个结果
poj1066Treasure Hunt(线段相交)
链接很纠结的找到了所有线段的中点,又很纠结的找到了哪些中点可以直接相连,最后bfs一下求出了最短路。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include ...
分类:其他好文   时间:2014-06-25 22:52:16    阅读次数:374
基于深度及广度优先搜索的迷宫问题的演示
1时间复杂度分析由于该图采用邻接矩阵存储,整个算法遍历的过程所花费的时间复杂度为该矩阵的N(row*col)。而由于其需要分别访问已经定位,需要进行分别2次操作,如下:visited=newbool[col*row];//访问标记for(i=0;i#include#include#include#i...
分类:其他好文   时间:2014-06-25 22:11:11    阅读次数:235
POJ 1184 聪明的打字员
简直难到没朋友。 双向bfs + 剪枝。 剪枝策略: 对于2--5位置上的数,只有当光标在对应位置时通过swap ,up,down来改变,那么当当前位置没有达到目标状态时,left和right无意义。 好了,只剪掉这里就过掉了。。。 还有比较炫酷的方法实现枚举720种排列。。。然后状压什么的。。。功力不够完全看不懂。。。。 #include #include #include #...
分类:其他好文   时间:2014-06-25 20:11:00    阅读次数:162
POJ 2553 The Bottom of a Graph TarJan算法题解
本题分两步: 1 使用Tarjan算法求所有最大子强连通图,并且标志出来 2 然后遍历这些节点看是否有出射的边,没有的顶点所在的子强连通图的所有点,都是解集。 Tarjan算法就是模板算法了。 这里使用一个数组和一个标识号,就可以记录这个顶点是属于哪个子强连通图的了。 然后使用DFS递归搜索所有点及其边,如果有边的另一个顶点不属于本子强连通图,那么就说明有出射的边。 有难度的题目: ...
分类:其他好文   时间:2014-06-25 07:19:31    阅读次数:241
POJ 1475 Pushing Boxes
搜索这种东西只要写之前规划得当还是蛮顺手的。。 mark[x1][y1][x2][y2]表示小人在(x1,y1) 盒子在(x2,y2)这种状态是否到过。 剩下的就是优先队列 + bfs 了,另外开一个栈记录前驱以输出路径。 #include #include #include #include #include #include #include #include #incl...
分类:其他好文   时间:2014-06-24 23:18:20    阅读次数:159
矩阵树定理速证
凯莱公式: spanning_trees_num( G ) = spanning_trees_num( G - e ) + spanning_trees_num( G · e ) 矩阵树定理: G 对应的拉普拉斯矩阵(度矩阵 - 邻接矩阵)L( G )   删除任意一行一列得到的行列式的值det( L*( G ) ) 即生成树的个数,即spanning_trees_num( G...
分类:其他好文   时间:2014-06-24 22:05:54    阅读次数:237
ACM:图的DFS,黑白图像
题目:输入一个n*n的黑白图像(1表示黑色,0表示白色),任务是统计其中八连块的个数。如果两个黑格子有公共边或者公共顶点,就说它们属于同一个八连块。 输入:第一行输入一个整数n(n 输出:输出有多少个八连块,以及每个块的面积。一个方格的面积为1。 分析:把图片最外层扩展开来,在最外面加一层白色的框框。。设置一个数组来存储每个八连块的面积。。DFS递归调用每一个黑色的方块。。DFS的最...
分类:其他好文   时间:2014-06-24 21:53:38    阅读次数:170
LCA-倍增法(在线)O(nlogn)-O(logn)
1.DFS预处理出所有节点的深度和父节点inline void dfs(int u){ int i; for(i=head[u];i!=-1;i=next[i]) { if (!deep[to[i]]) { ...
分类:其他好文   时间:2014-06-24 20:23:57    阅读次数:251
ACM:图的BFS,走迷宫
题目: 一个网格迷宫由n行m列的单元格组成,每个单元格要么是空地(用1表示),要么是障碍物(用0来表示)。你的任务是找一条从起点到终点的最短移动序列,其中UDLR分别表示往上、下、左、右移动到相邻单元格。任何时候都不能在障碍格中,也不能走到迷宫之外。起点和终点保证是空地。 分析:图的BFS。 #include #include #include using namesp...
分类:其他好文   时间:2014-06-24 17:40:37    阅读次数:230
图的存储形式——邻接矩阵(数组)
邻接矩阵:用两个数组分别存储数据元素(顶点)的信息和数据元素之间的关系(边或弧)的信息。 比如考虑下面这个有向图: 如果用邻接矩阵存储可以表示为: 1.顶点数组: 2.邻接矩阵: 图的遍历: 深度优先(DFS): 深度优先搜索遍历类似于树的先根遍历,是树的先根遍历的推广。假设初始状态是图中所有顶点未曾访问过,...
分类:其他好文   时间:2014-06-24 15:48:29    阅读次数:300
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!