第一节 镖局运镖-图的最小生成树所谓最小生成树,就是在一个具有N个顶点的带权连通图G中,如果存在某个子图G',其包含了图G中的所有顶点和一部分边,且不形成回路,并且子图G'的各边权值之和最小,则称G'为图G的最小生成树。最小生成树的三个性质最小生成树不能有回路最小生成树可能是一个,也可能有多个最小....
分类:
其他好文 时间:
2014-06-27 14:46:30
阅读次数:
187
就是欧拉判定,判定之后就可以使用DFS求欧拉回路了。图论内容。
这里使用邻接矩阵会快很多速度。
这类题目都是十分困难的,光是定义的记录的数组变量就会是一大堆。
#include
#include
#include
#include
using namespace std;
struct Edge
{
int ed, des;
Edge(int e = 0, int d ...
分类:
其他好文 时间:
2014-06-26 13:16:05
阅读次数:
250
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1294题意:思路:f[i][j][st]表示从(i,j)出 发到(i,j)停止组成的回路、状态为st的最小步数。从每个0的位置(i,j)进行BFS一次,得到所有的状态。判断一个路径是否包含某...
分类:
其他好文 时间:
2014-06-23 07:51:05
阅读次数:
241
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1997题意:给出一个无向图。已知该图存在一个包含n个顶点的哈密顿回路。判定该图是不是平面图。思路:圈将面分成内外两部分,则两条边同时在内部相交则同时在外部也是相交的。因此,必然是一个在内部一...
分类:
其他好文 时间:
2014-06-23 06:48:15
阅读次数:
170
Kruskal算法用于计算一个图的最小生成树。这个算法的步骤如下:
按照边的权重从小到达进行排序
依次将每条边增加到最小生成树中,除非这条边会造成回路
实现思路
第一个步骤需要对边进行排序,排序方法在之前的章节中已经介绍了很多,可以使用优先级队列进行实现,也可以使用归并排序进行实现,这里采用归并排序。
第二个步骤需要判断是否会造...
分类:
其他好文 时间:
2014-06-22 21:43:31
阅读次数:
204
在一个软件工程项目中,有些任务需要在另外一个任务完成之后才能完成,这种任务在软件工程中是非常常见的。下图就展示了一个软件项目的依赖情况。
这张图非常明显,就是一张有向图。那么,现在问题就来了,如何输出任务的完成顺序呢?
这个问题有一个前提条件,就是有向图中不能出现回路。
算法的基本思想就是在每次dfs返回时将顶点加入到返回结...
分类:
其他好文 时间:
2014-06-22 20:03:38
阅读次数:
221
最小生成树是图论中的一个概念。首先介绍一下什么是生成树。生成树就是将一个图中所有的顶点全部连接在一起,并且保证图中没有出现回路。
下图不是生成树,因为没有连接所有的顶点。
下图不是生成树,因为图中有回路。
像下图这样的才是生成树。
生成树的概念介绍完了。那么最...
分类:
其他好文 时间:
2014-06-22 18:33:47
阅读次数:
202
首先介绍什么是强连接。顶点之间的强连接就是如果v能到达w,那么w也能到达v。顶点之间的强连接就表示顶点之间可以双向到达,也就是说两个顶点在一个回路上。
介绍了强连接,那什么是强连接部件呢?强连接部件就是能够相互到达的所有顶点的集合。一个图中可能会有多个强连接。
强连接在离散数学中属于等价关系,也就是说它具有反射性,相反性,传递性。
应用
...
分类:
其他好文 时间:
2014-06-22 15:22:49
阅读次数:
172
USB 3.0超速U盘,RC回路,充放电特性...
分类:
其他好文 时间:
2014-06-17 18:59:30
阅读次数:
221
旅行商问题:
N个点(N
并且路径上边的权值和最小(或者最大),或者求一条具有这样性质的回路。
状态压缩:
将二进制表示十进制数N的点集,比如:
10 = 00001010 代表第1和3个点已经路过
18 = 00010010 代表第1和4个点已经路过
一个整数就是一个点集,
dp_arr[i][j]代表经过点集i中,当前终点为j,且路径最短的值,若该状态不存在就是...
分类:
其他好文 时间:
2014-06-17 16:05:30
阅读次数:
231