当年老师给我们讲这里的时候,讲的真是云里雾里的。
。其实画个图就很容易理解的事情,为什么扯那么远
我觉得 DFS其实就是树的先序遍历的强化版本
BFS是层序遍历的强化
只不过 图的实现方式比较多元化 而且不像二叉树有明确的根
操作起来相对难一些
理论其实很好理解 就是具体操作起来 每次都很晕的样子
眼高手低了又。
图的遍历是指从图中的任一顶点出发,对图中的所有顶点访...
分类:
其他好文 时间:
2015-02-22 11:06:58
阅读次数:
269
题意:求s到t走过边数大于k的最短路思路:邻接表实现,用w[u][e]来维护(看的大牛博客),u表示当前点,e表示已经经过多少条边。感觉有点类似DP。在边数大于k的处理上,发现还是使之等于k(K 2 #include 3 #include 4 #include 5 #include 6 #inclu...
分类:
其他好文 时间:
2015-02-17 07:04:22
阅读次数:
153
邻接表版的DFS形式的二分匹配增广路求最大匹配数匈牙利算法的要点如下从左边第 1 个顶点开始,挑选未匹配点进行搜索,寻找增广路。如果经过一个未匹配点,说明寻找成功。更新路径信息,匹配边数 +1,停止搜索。如果一直没有找到增广路,则不再从这个点开始搜索。事实上,此时搜索后会形成一棵匈牙利树。我们可以永...
分类:
其他好文 时间:
2015-02-17 07:03:35
阅读次数:
170
题目链接 要添最少的挡板使所有的'D'不存在到达网格外的路径. 以每个格子向四个方向中可以到达的格子连容量为1的边, 从源点向所有'D' 连容量为4的边,网格外的点向汇点连一条容量为4的边. 答案就是这个容量网络的最小割,即最大流./* 最大流SAP 邻接表 ...
分类:
其他好文 时间:
2015-02-16 00:22:39
阅读次数:
183
实现功能:同之前可以看见的是这次的程序优美了许多,代码简短了一倍还多,可是速度却是和原来的邻接表一个级别的(在Codevs上面草地排水那题的运行时间比较,但是显然数据很大时应该比那个慢些),原理差不多,感觉dfs里面的来回倒变量很神奇 1 var 2 s,t,i,j,k,l,m,n,ans:l...
分类:
编程语言 时间:
2015-02-15 00:57:05
阅读次数:
283
实现功能:同前程序还是一如既往的优美,虽然比起邻接矩阵的稍稍长了那么些,不过没关系这是必然,但更重要的一个必然是——速度将是一个质的飞跃^_^(这里面的point指针稍作了些创新——anti指针,这个指向当前弧的反向弧,便于路径增广时的操作,相比非递归里面非要用一个op函数来挨个找已经强多了!!!)...
分类:
编程语言 时间:
2015-02-15 00:56:51
阅读次数:
353
int V; //顶点数量vector G[max_v]; //图的邻接表表示方法vector rG[max_v]; //把边反向建的图vector vs; //后序遍历顺序的顶点列表bool used[max_v]; //访问标记int cmp[max_v]; ...
分类:
其他好文 时间:
2015-02-14 17:28:57
阅读次数:
188
又深刻理解了一遍prim和dijkstra算法,感觉蛮棒的~第一次自己用邻接表写,just soso~ 啊哈~一开始被优先队列,重载运算符给卡住了~ 蛋疼~ 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #in...
分类:
编程语言 时间:
2015-02-13 01:32:29
阅读次数:
193
实现功能:同最大流 1这里面主要是把前面的邻接矩阵改成了邻接表,相比之下速度大大提高——本人实测,当M=1000000 N=10000 时,暂且不考虑邻接矩阵会不会MLE,新的程序速度快了很多倍(我们家这个很弱的电脑上耗时0.3s);而当M=300000 N=10000时,优势更加明显(几乎是秒出)...
分类:
编程语言 时间:
2015-02-09 17:53:50
阅读次数:
234
之前写的那份是用邻接矩阵访问的,最近在复习数据结构,决定把邻接表的也写上来
邻接矩阵的看这里 : http://blog.csdn.net/hhooong/article/details/41761621
邻接表 :(写关键部分的算法)
void DFS (Graph &G, int v ,bool visit[]) {
cout << G.getValue(v) << end...
分类:
其他好文 时间:
2015-02-07 17:34:41
阅读次数:
149