摘要: 简单说明:并查集(union-find set),根据字面意思可以理解为在N个元素中,将属于同一组元素所在的集合合并,期间要反复查找一个元素在哪个集合中,即并+查。处理这类问题时便可以用到这种特殊的数据结构,保证了空间时间不会超过限制。 并查集是一种抽象的数据结构,其本身不具有结构,必须借助一定的数 阅读全文
posted @ 2018-05-25 21:49 uncklesam7 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 最小生成树(MST):一个有N个点的图,边一定是大于等于N-1条边的。在这些边中选择N-1条出来,连接所有N个点。这N-1条边的边权之和是所有方案中最小的。 Prim算法的时间复杂度时O(n^2)的,因此适用于稠密图的最小生成树,如果是稀疏图的情况下采用Kruskal算法更好。 Prim算法蕴含了贪 阅读全文
posted @ 2018-05-25 19:24 uncklesam7 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 原题: Invitation Cards Time Limit: 8000MS Memory Limit: 262144K Total Submissions: 31230 Accepted: 10366 Description In the age of television, not many 阅读全文
posted @ 2018-04-22 17:13 uncklesam7 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 今天所说的就是常用的解决最短路径问题最后一个算法,这个算法同样是求连通图中单源点到其他结点的最短路径,功能和Bellman-Ford算法大致相同,可以求有负权的边的图,但不能出现负回路。但是SPFA算法的时间复杂度是O(kE),k是常数,平均值为2,E是边数。我们可以看到SPFA算法的时间复杂度远远 阅读全文
posted @ 2018-04-22 14:41 uncklesam7 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 简要:Bellman-Ford算法计算的仍然是从一个点到其他所有点的最短路径算法,其时间复杂度是O(NE),N表示点数,E表示边数,不难看出,当一个图稍微稠密一点,边的数量会超过点数那么实际上效率是低于Dijkstra算法的。但是本算法可以计算存在负权边的情况(不存在负回路),因此可以用于更广泛的情 阅读全文
posted @ 2018-04-18 22:19 uncklesam7 阅读(225) 评论(0) 推荐(0) 编辑
摘要: Dijkstra 算法解决的是带权重的有向图上单源最短路径问题,该算法要求所有边的权重都为非负值。该算法的时间复杂度是O(N2),相比于处理无负权的图时,比Bellmad-Ford算法效率更高。 算法描述: 首先引用《算法导论》中的一段比较官方的话,如果可以看懂,那下一部分就可以跳过了: “Dijk 阅读全文
posted @ 2018-04-14 12:21 uncklesam7 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 这几周开始正式系统学习图论,新学期开始新的记录。由于二模和生物地理两门高考的临近,时间比较仓促,所以暂时跳过图论的(一)和(二),即图的储存和遍历。从最短路径算法学起,首先要学习的是Floyed-Warshall算法。 Floyed(佛洛依德)算法,是最简单也是最基础的最短路径算法,可以计算图中任意 阅读全文
posted @ 2018-04-12 22:26 uncklesam7 阅读(755) 评论(0) 推荐(0) 编辑
摘要: 学校老师布置的一道动规的题目,要求下次上课前AC。周一一放学就回家写,调试了一会儿OK了。在这边记录一下解题的思路和过程,也作为第一篇随笔,就是随便之一写,您也就随便之一看。有问题望你指出,多多包涵。 题目描述如下: POLYGON 源程序名 POLYGON.??? (PAS,C,CPP) 可执行文 阅读全文
posted @ 2017-12-19 19:40 uncklesam7 阅读(464) 评论(0) 推荐(0) 编辑