随笔分类 -  图论——初等图论

主要是acm中建图的方式和最短路、最小生成树等算法。
摘要:问题简介 有n个城市,每个城市间均有道路,一个推销员要从某个城市出发,到其余的n-1个城市一次且仅且一次,然后回到再回到出发点。问销售员应如何经过这些城市是他所走的路线最短? 用图论的语言描述就是:给定一个权值为正数的赋权完全图,求各边权值和最小的哈密尔顿回路。 这个问题就是著名的旅行商问题(TSP 阅读全文
posted @ 2018-11-09 20:17 Rogn 阅读(1502) 评论(0) 推荐(0) 编辑
摘要:题目 输入n(n≤100000)个单词,是否可以把所有这些单词排成一个序列,使得每个单词的第一个字母和上一个单词的最后一个字母相同(例如 acm,malform,mouse)。每个单词最多包含1000个小写字母。输入中可以有重复单词。 解题思路 把字母看作结点,单词看作有向边,则问题有解等价于图中存 阅读全文
posted @ 2018-11-07 18:59 Rogn 阅读(283) 评论(0) 推荐(0) 编辑
摘要:最小生成树算法 Kruskal+并查集 O(ElogE) 阅读全文
posted @ 2018-08-27 21:23 Rogn 阅读(234) 评论(0) 推荐(0) 编辑
摘要:一、最小生成树 在无向图中,连通且不含圈的图称为树(Tree)。给定无向图G=(V,E),连接G中所有点,且边集是E的子集的树称为G的生成树(Spanning Tree),而权值最小的生成树称为最小生成树(Minning Spanning Tree,MST)。 二、Kruskal 步骤: 1、将所有 阅读全文
posted @ 2018-08-27 19:41 Rogn 阅读(425) 评论(0) 推荐(0) 编辑
摘要:介绍: 是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权(但不可存在负权回路)的最短路径问题,同时也被用于计算有向图的传递闭包。 Floyd-Warshall算法的时间复杂度是O(N3),空间复杂度O(N2)。 原理: Floyd-Warshall算法的原理是动态规划。 用fk(i,j 阅读全文
posted @ 2018-08-25 23:41 Rogn 阅读(597) 评论(0) 推荐(0) 编辑
摘要:单源最短路 Dijkstra + 邻接矩阵 O(V2 + E) Dijkstra + STL priority_queue + 链式前向星 O((V + E)lgV) Dijkstra + STL priority_queue + 邻接表 O((V + E)lgV) Bellman-Ford O(V 阅读全文
posted @ 2018-08-25 22:10 Rogn 阅读(505) 评论(0) 推荐(0) 编辑
摘要:一、Bellman-Ford Bellman-Ford 算法是一种用于计算带权有向图中单源最短路径(当然也可以是无向图)。与Dijkstra相比的优点是,也适合存在负权的图。 若存在最短路(不含负环时),可用Bellman-Ford求出,若最短路不存在时,Bellman-Ford只能用来判断是否存在 阅读全文
posted @ 2018-08-25 18:11 Rogn 阅读(5595) 评论(1) 推荐(5) 编辑
摘要:一、介绍 迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他各个节点的最短路径。 它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。 适用于有向图和无向图,但不能有边权为负的情况。 二、基本思想 通过Dijkstra计算图G中的最短路径时,需 阅读全文
posted @ 2018-08-22 11:50 Rogn 阅读(1460) 评论(3) 推荐(0) 编辑
摘要:合适的存图方式往往能事半功倍,这里介绍三种方式:邻接矩阵、邻接表、链式前向星。 邻接矩阵 1)存图思想 用一个矩阵来记录一个图,矩阵第 i 行第 j 列的值就表示顶点 i 到顶点 j 的权值 2 代码实现 3)优点 a.简单易学 b.对已确定的边进行操作效率高:对已确定的边(两顶点已知),进行增加、 阅读全文
posted @ 2018-07-16 10:49 Rogn 阅读(3217) 评论(1) 推荐(3) 编辑
摘要:一、最小生成树问题 什么是最小生成树问题?给你一个带权连通图,需要你删去一些边,使它成为一颗权值最小的树。 二、Prim算法 1)输入:输入一个带权连通图,顶点集合V,边集合E 2)初始化:Vnew={x},x为任意一个顶点,作为起始点,Enew={},为空 3)在集合E中选择权值最小的边<u,v> 阅读全文
posted @ 2018-07-14 13:22 Rogn 阅读(1084) 评论(0) 推荐(0) 编辑