随笔分类 -  图论

摘要:http://blog.sina.com.cn/s/blog_691ce2b701016reh.html 阅读全文
posted @ 2016-02-19 17:59 &ATM 阅读(207) 评论(0) 推荐(0)
摘要:转自大牛的二分图最大匹配总结 二分图总结2 阅读全文
posted @ 2016-02-19 13:11 &ATM 阅读(90) 评论(0) 推荐(0)
摘要:参考资料:http://blog.csdn.net/lezg_bkbj/article/details/11538359 上面的资料,把强连通讲的很好很清楚,值得学习。 在一个有向图G中,若两顶点间至少存在一条路径(即a能到b,b也能到a),则称两个顶点强连通;如果该有向图G中任意两顶点都强连通,则称G为强连通图;在一个非强连通图中,若有子图是强连通图,则称该子图为强连通分量。 有向图强连... 阅读全文
posted @ 2016-02-04 00:05 &ATM 阅读(1161) 评论(0) 推荐(0)
摘要:欧拉路的相关概念: 1.能从无向图中的一个顶点出发,并走出一条道路,每条边恰好经过一次,这样的路线就叫做欧拉路; 2.找欧拉路首先要判断是否存在欧拉路: 一个无向图存在欧拉路当且仅当该图是连通的,且有且只有0或2个点的度数是奇数,为2时这两个点只能作为欧拉路径的起点和终点(0个时称为欧拉回路)。 3.确定存在欧拉路之后,开始构造欧拉路: 欧拉路参考:http://blog.csdn.net... 阅读全文
posted @ 2016-02-03 21:47 &ATM 阅读(958) 评论(0) 推荐(0)
摘要:【需要解决的问题】 对一个有向无环图(DAG)拓扑排序。 拓扑排序就是,对图上的点进行排序,使得排在后面的点不能通过一条路径到前面的点。 比如下面这个图: 其中一个拓扑排序是1,2,3,4,5;而1,2,5,3,4就不行,因为3能到达5。 因此可以得出: 用一个队列实现,先把入度为0的点放入队列,每 阅读全文
posted @ 2016-02-02 22:36 &ATM 阅读(1764) 评论(0) 推荐(1)
摘要:先来说说什么是树。 树实际上是图的一种,当一个有N个点的无向连通图,只有N-1条边时,就是一棵树,即树中不会有环出现;所以对于一个图,删除某些环中的某条边,使得该图成为一棵树,那么这棵树就称为生成树。 而最小生成树的意思就是,给定有n个顶点的带权图G(E,V),找到一棵生成树,求该生成树的边权和。 Kruskal算法: 算法步骤: 1.构造一个有n个顶点的无边子图; ... 阅读全文
posted @ 2016-02-02 20:50 &ATM 阅读(1097) 评论(0) 推荐(0)
摘要:在学习最小生成树的两种算法前,先学下并查集。 并查集的思想是,对于一个集合,使用集合中的一个顶点作为特殊点,集合里所有的点都与此特殊点直接相连;而并查集的查询,就相当于查询两个两个顶点是否为同一个父亲,这也是findSet(x)里之所以有fa[x]==x时,fa[x]=x的原因。 并查集之查询、合并 模板如下: int fa[30010]; void makeSet(i... 阅读全文
posted @ 2016-02-02 16:31 &ATM 阅读(204) 评论(0) 推荐(0)
摘要:先说前三种,主要解决的问题是:“求a点到b点的最短路”,解决方法是:用以下三种算法中的一种,求出a点到其他所有点的最短路,即可知道a点到b点的最短路。 前三种最短路算法是:Dijkstra(及优先队列优化),Bellman-Ford,SPFA(实际上就是BF的优化版)。 Dijkstra算法: (要求边权只能大于等于0) 未优化 O(N2): 贪心... 阅读全文
posted @ 2016-02-02 16:12 &ATM 阅读(639) 评论(0) 推荐(0)
摘要:【概念】疏松图&稠密图: 疏松图指,点连接的边不多的图,反之(点连接的边多)则为稠密图。 Tips:邻接矩阵与邻接表相比,疏松图多用邻接表,稠密图多用邻接矩阵。 邻接矩阵: 开一个二维数组graph[ ][ ]来记录图中点a与点b之间是否连通,初始化为0(或者-1之类的看情况);如果图中有可忽略的重边(如 只需重边中的最小边或最大边),则保存需要的那条边的边权,但如果有无法忽略的重边,就一... 阅读全文
posted @ 2016-02-02 00:20 &ATM 阅读(1616) 评论(0) 推荐(0)
摘要:DFS和BFS在图中的应用: 图连通性判定;路径的存在性;图中是否存在环;求图的最小生成树;求图的关键路径;求图的拓扑排序。 DFS:简单的说,先一直往深处走,直到不能再深了,再从另一条路开始往深处走,直到所有路都走完; struct node { int next; //E[i].next指向图中 阅读全文
posted @ 2016-02-01 22:07 &ATM 阅读(666) 评论(0) 推荐(0)

……