
图论
Nino_7
这个作者很懒,什么都没留下…
展开
-
「关于单源最短路径的三种算法的思考(不包括计算多点路径的Floyd算法)」
从Bellman-Ford算法(可以处理负值,检测负权回路,但复杂度过高)开始,Bellman-ford算法是求含负权图的单源最短路径算法;效率很低,但代码很容易写;复杂度很高:O(VE) v为顶点数,e为边数。思想:进行不停地松弛,每次松弛把每条边都更新一下,直到一次遍历所有边的松弛操作无法更新结点间的最短距离。若n-1次松弛后还能更新,则说明图中有负环(因为最短路不会同时经过同一个点两次,也就...原创 2018-02-13 00:55:52 · 454 阅读 · 0 评论 -
图的存储与遍历(链式前向星中的DFS与BFS)
图的存储方式:1.图的数组(邻接矩阵)存储表示,其中无向图的存储方式为对称矩阵数组,有向图的存储方式为非对称矩阵数组。求最短路径时常常采用数组存储表示各点间的路径。2.边集方法 边的定义: stuct edge_set{ int u,v; int weight; }edge[N];边的结点:edge[i].u...原创 2018-02-13 22:11:20 · 1507 阅读 · 0 评论 -
浅谈差分约束算法
参考:http://www.cppblog.com/menjitianya/archive/2015/11/19/212292.html (理论部分) https://www.cnblogs.com/zhangmingcheng/p/3929394.html (题集举例)差分约束系统有两种方式可以求解,最短路和最长路。当我们把不等式整理成d[a]+w<=d[b]时,我们求最长...原创 2018-03-09 00:08:16 · 2337 阅读 · 0 评论 -
CodeForces - 782C Andryusha and Colored Balloons
C. Andryusha and Colored Balloonstime limit per test 2 secondsmemory limit per test 256 megabytesinput standard inputoutput standard outputAndryusha goes through a park each day. The squares and paths...转载 2018-03-02 17:44:24 · 394 阅读 · 0 评论 -
最小生成树(森林):Prim算法与Kruskal算法 (以POJ1287为例)
Prim算法:Prim算法类似于Dijkstra算法,但又不尽相同。我们首先设一个只包含一个随机选取的结点v的集合T(T即为已加入最小生成树的点的集合)然后贪心地选取其他未加入集合中的点与T的距离最短的点即可,如此迭代这一过程,直到所有的点都已加入集合T,即得到了最小生成树。图示分析:https://www.61mon.com/index.php/archives/199/POJ1287-NETW...原创 2018-03-06 10:35:55 · 2543 阅读 · 0 评论 -
并查集
并查集是一种可以高效完成以下操作的数据结构:1.查询元素a与元素b是否属于同一分组。2.合并元素a和b所属的分组。对于并查集,每次查询如果不使用路径压缩,在极端情况下将会退化为一条链,如下:int findfat(int x) { if(fat[x] == x) return x; return findfat(fat[x]); }在树型数据结构里,如果发生了退化的情况,那么复杂度就会变得很高...转载 2018-03-06 10:40:45 · 128 阅读 · 0 评论