摘要: Dijkstra算法可使用的前提:不存在负圈。 负圈:负圈又称负环,就是说一个全部由负权的边组成的环,这样的话不存在最短路,因为每在环中转一圈路径总长就会边小。 算法描述: 1.找到最短距离已确定的顶点,从它出发更新相邻顶点的最短距离。 2.以后不需要再关心1中的“最短距离已确定的顶点”。 C++代 阅读全文
posted @ 2017-10-22 23:16 ninding 阅读(2343) 评论(0) 推荐(0) 编辑
摘要: 单源最短路问题是固定一个起点,求它到其他所有点的最短路的问题。 算法: 设 d[i] 表示 起点 s 离点 i 的最短距离。 【1.初始化】 固定起点s,对所有的点 , 如果 i = s , d[i] 置为 0 ;如果 i != s , d[i] 置为 INF,执行 2。 【2.更新】 update 阅读全文
posted @ 2017-10-22 22:46 ninding 阅读(1410) 评论(1) 推荐(1) 编辑
摘要: 二分图的判定 给定一个具有n个顶点的图。要给图上每个顶点染色,并且要使相邻的顶点颜色不同。 判断是否能最多用两种颜色进行染色。题目保证没有重边和自环。 概念:把相邻顶点染成不同颜色的问题叫做图的着色问题。对图进行染色所需要的最小颜色数称为最小着色度。 最小着色度为2的图称作二分图。 分析:如果只用两 阅读全文
posted @ 2017-10-22 17:24 ninding 阅读(4254) 评论(0) 推荐(0) 编辑
摘要: 并查集函数模板写法: 并查集类模板写法: 阅读全文
posted @ 2017-10-22 17:01 ninding 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 这里是最小堆,最大堆也是类似的。 1.堆是一颗完全二叉树。 性质:儿子节点的值一定不小于父节点的值。 堆的存储用一个数组heap[n]即可。 由于完全二叉树的性质,节点是按顺序排列的, i 节点的子节点编号为 2*i+1 和 2*i+2 。 同理 i 节点的父节点为 (i-1)/2 。 操作:堆有插 阅读全文
posted @ 2017-10-22 16:56 ninding 阅读(317) 评论(0) 推荐(0) 编辑