图的连通性问题包括:1、强连通分量。2、最小点基和最小权点基。3、双连通。4、全局最小割。5、2-SAT一、强连通分量强连通分量很少单独出题,一般都是把求强连通分量作为缩点工具。有三种算法:1、Kosaraju算法。对原图和反图分别进行一次深度优先搜索。2、Tarjan算法。用了时间戳。3、Garb...
分类:
其他好文 时间:
2014-09-30 03:11:22
阅读次数:
250
深度优先搜索(DFS, Depth-First Search)是搜索的手段之一。它从某个状态开始,不断地转移状态直到无法转移,然后退到前一步的状态,如此不断重复,直至找到最终的解。部分和问题给定整数a1、a2、……、an,判断是否可以从中选出若干个数,使它们的和恰好为k。限制条件1 ≤ n ≤ 20...
分类:
其他好文 时间:
2014-09-27 00:38:38
阅读次数:
245
说说:题目的意思本质上就是给你N条无向边,若存在欧拉回路,则将其生成。无向图的欧拉回路的判断非常容易,只要判断是否每个节点都是偶数度即可。但是,对欧拉回路的生成,也就是Fleury算法,貌似有点问题。我自己在这个地方也纠结了好久。下面就来讲讲Fleury算法。
开始我觉得,就是个非常简单的深度优先搜索的问题,直接从任意一个节点,然后不断DFS即可。所以就有了如下的代码:
for...
分类:
其他好文 时间:
2014-09-24 22:22:28
阅读次数:
302
原题地址:https://oj.leetcode.com/problems/n-queens/题意:经典的N皇后问题。解题思路:这类型问题统称为递归回溯问题,也可以叫做对决策树的深度优先搜索(dfs)。N皇后问题有个技巧的关键在于棋盘的表示方法,这里使用一个数组就可以表达了。比如board=[1, ...
分类:
编程语言 时间:
2014-09-21 13:02:00
阅读次数:
208
本文章代码中的图用邻接矩阵来表示,所以算法复杂度为O(V^2)。如果用邻接表来表示,那么算法的复杂度为O(V+E)。DFS可用来判断图中是否有环,展现无向图中的连通分支。通过DFS,形成一个由多棵深度优先树所组成的深度优先森林。将原先图中的边添加到该森林之后,可以将所有边定义为以下四类:1. 树边:...
分类:
其他好文 时间:
2014-09-19 19:00:25
阅读次数:
130
字典分词 代码(C)本文地址: http://blog.csdn.net/caroline_wendy给定字典, 给定一句话, 进行分词. 使用深度遍历(DFS)的方法.使用一个参数string, 保存当前分支的分词后的句子; 使用一个参数vector, 保存所有可能的组合.使用一个验证函数, 判断句子是否可以分词.代码:/*
* main.cpp
*
* Created on: 2014...
分类:
其他好文 时间:
2014-09-19 10:13:35
阅读次数:
288
此算法以有向图作为输入,并按照所在的强连通分量给出其顶点集的一个划分。graph中的每个节点只在一个强连通分量里出现,即使是单点。
任选一点开始进行深度优先搜索(若dfs结束后仍有未访问的节点,则再从中任选一点再从进行)。搜索过程中已访问的节点不再访问。搜索树的若干子树构成了图的强连通分量。
节点按照被访问的顺序存入栈中。从搜索树的子树返回至一个节点时,检查该节点是否是某一...
分类:
其他好文 时间:
2014-09-15 17:56:19
阅读次数:
253
说说:
这道题的题意,事先题目给你如下图所示:
XXXXXXXXX
X X X
X * X
X X X
XXXXXXXXX
X X
X X
X X
XXXXX
可以把以上图像想象成一间房子,字符'X‘是围墙,你现在所处的位置是'*'所在的地...
分类:
其他好文 时间:
2014-09-14 15:25:07
阅读次数:
152
利用两个拓扑序号对深度优先搜索求解可达性查询进行剪枝操作,加快可达性查询效率。该方法索引较小,因此能处理大图(100000条边以上)。...
分类:
其他好文 时间:
2014-09-11 15:26:42
阅读次数:
174
深度优先搜索算法(depth first search),是一个典型的图论算法。所遵循的搜索策略是尽可能“深”地去搜索一个图。算法思想是: 对于新发现的顶点v,如果它有以点v为起点的未探测的边,则沿此边继续探测下去。当顶点v的所有边都已被探寻结束,则回溯到到达点v的先辈节点。以相同方法一直回溯到源....
分类:
其他好文 时间:
2014-09-07 15:55:45
阅读次数:
208