随笔分类 -  POJ-图论

摘要:POJ-图论-最小生成树模板 Kruskal算法 1.初始时所有结点属于孤立的集合。 2.按照边权递增顺序遍历所有的边,若遍历到的边两个顶点仍分属不同的集合(该边即为连通这两个集合的边中权值最小的那条)则确定该边为最小生成树上的一条边,并将这两个顶点分属的集合合并。 3.遍历完所有边后,原图上所有结 阅读全文
posted @ 2019-07-01 00:36 郭怡柔 阅读(217) 评论(0) 推荐(0)
摘要:POJ-图论-最短路模板 一、Floyd算法 刚读入数据时,G为读入的图邻接矩阵,更新后,G[i][j]表示结点i到结点j的最短路径长度 1.init():初始化图邻接矩阵 2.floyd():更新最短路径 例 5.5 最短路 模板代码 二、Dijkstra算法 G为图邻接矩阵,G[i][j]表示读 阅读全文
posted @ 2019-06-28 18:43 郭怡柔 阅读(306) 评论(0) 推荐(0)
摘要:POJ-图论-并查集模板 1、init:把每一个元素初始化为一个集合,初始化后每一个元素的父亲节点是它本身,每一个元素的祖先节点也是它本身(也可以根据情况而变)。 2、find(x) :查找一个元素所在的集合,即找到这个元素所在集合的祖先,判断两个元素是否属于同一集合,只要看他们所在集合的祖先是否相 阅读全文
posted @ 2019-06-28 11:57 郭怡柔 阅读(144) 评论(0) 推荐(0)
摘要:【算法总结】图论-拓扑排序 一、概念 设有一个有向无环图(DAG 图),对其进行拓扑排序即求其中结点的一个拓扑序列,对于所有的有向边(U,V)(由U指向V),在该序列中结点U都排列在结点 V 之前。满足该要求的结点序列,被称为满足拓扑次序的序列。求这个序列的过程,被称为拓扑排序。 由满足拓扑次序序列 阅读全文
posted @ 2019-06-26 20:28 郭怡柔 阅读(522) 评论(0) 推荐(0)
摘要:【算法总结】图论-最短路径 一、概念 最短路径问题。即寻找图中某两个特定结点间最短的路径长度。所谓图上的路径,即从图中一个起始结点到一个终止结点途中经过的所有结点序列,路径的长度即所经过的边权和。 二、Floyd算法 用邻接矩阵保存原图,那么此时邻接矩阵中 edge[i][j]的值即表示从结点i到结 阅读全文
posted @ 2019-06-26 12:03 郭怡柔 阅读(1706) 评论(0) 推荐(0)
摘要:【算法总结】图论-最小生成树 一、概念 在一个无向连通图中,如果存在一个连通子图包含原图中所有的结点和部分边,且这个子图不存在回路,那么我们称这个子图为原图的一棵生成树。在带权图中,所有的生成树中边权的和最小的那棵(或几棵)被称为最小生成树。 定理:在要求解的连通图中,任意选择一些点属于集合A,剩余 阅读全文
posted @ 2019-06-25 23:49 郭怡柔 阅读(324) 评论(0) 推荐(0)
摘要:【算法总结】图论-并查集 一、概念:并查集 并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中,其特点是看似并不复杂,但数据 阅读全文
posted @ 2019-06-25 21:58 郭怡柔 阅读(824) 评论(0) 推荐(0)
摘要:【算法总结】图论-预备知识 邻接矩阵:用一个二维数组来表示图的相关信息,如edge[i][j]表示结点i和结点j之间的关系(以及权重)——在表示的图为稠密图,且频繁地判断特定结点对是否相邻时,使用邻接矩阵较为适宜。 邻接链表:链式存储结构,为图的每个顶点建立一个单链表,第i个单链表中保存与结点相邻的 阅读全文
posted @ 2019-06-25 19:54 郭怡柔 阅读(190) 评论(0) 推荐(0)