关于三个简单的图论算法prim,dijkstra和kruskal三个图论的算法,初学者容易将他们搞混,所以放在一起了。prim和kruskal是最小生成树(MST)的算法,dijkstra是单源最短路径的算法。prim最小生成树prim算法采用了贪心策略:把点分成两个集合,A为已被处理(已经在最小生...
分类:
其他好文 时间:
2014-07-12 00:34:01
阅读次数:
216
Prim算法1.概览普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(...
分类:
其他好文 时间:
2014-07-12 00:26:56
阅读次数:
298
Dijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论...
分类:
其他好文 时间:
2014-07-12 00:23:03
阅读次数:
308
拓扑排序虽是一种排序,但是它跟平时所接触的sort或者qsort不同,排序的意义不同。拓扑排序针对有向无回路图(DAG)而言的,不应用与存在回路的有向图。【图论】广度优先搜索和深度优先搜索 有说到了BFS和DFS,拓扑排序是DFS的一个应用。有向无回路图能说明事件的发生的先后的顺序。比如穿衣服,士兵...
分类:
其他好文 时间:
2014-07-11 20:11:54
阅读次数:
298
解法有很多奇葩的地方,比如可以到达终点再跳回去再跳回来(比如有两个点)。。。。反正就是不能有最短路,不过没关系,算法都能给出正确结果
思想:和求最短路上的点套路一样,spfa先正着求一次,再反着求一次最短路,然后枚举每条边找dist_zheng[i] + len + dist_fan[j]的第二小值即可!注意不能用邻接矩阵,那样会MLE,应该用邻接表
/*
poj 3255
...
分类:
数据库 时间:
2014-07-09 11:28:13
阅读次数:
245
判断是否欧拉回路。
很蛋疼的一道题,加上DFS判所有点是否连通就无限WA。(并查集也可判)
直接定理就AC了。都不知道所有点是不是在一个 连通块里面。
然后他们说:Your master is a particularly absent-minded lout and continually leaves doors open throughout a particular floo...
分类:
其他好文 时间:
2014-07-08 20:05:55
阅读次数:
212
欧拉回路问题。
题意是说给你一些字符串,类似于成语接龙,上一个字符串尾字母必须和下一个字符串首字母相同。
把所有字符串连成一串。
根据定理判断欧拉通路,然后DFS判连通(并查集也可)
没注意题意 字符串开了str[100] 结果RE。结果字符串最长有1000.改了就AC了。
#include
#include
#include
#include
#include
...
分类:
其他好文 时间:
2014-07-08 18:04:02
阅读次数:
168
最近在整理图论的算法。并且做了一些基础的题来练习,现在做一个总结,然后准备进入下一类算法的复习。
算法这个东西,就是不要害怕去编,哪怕自己只是有一点点理解,有好多点的模糊, 找一道基础的题, 对应着有一种思路解答的,去学习代码,学习里面的思路,并且自己动手跟着敲一敲,慢慢的就会理解了。 不用想着一开始就能够很彻底的理解算法的细节上思想。 理解的时候,从它所要达到的目的去思考, 知道它是要做...
分类:
其他好文 时间:
2014-07-08 15:57:51
阅读次数:
149
题目链接:Codeforces 444A DZY Loves Physics
题目大意:给出一张图,图中的每个节点,每条边都有一个权值,现在有从中挑出一张子图,要求子图联通,并且被选中的任意两点,如果存在边,则一定要被选中。问说点的权值和/边的权值和最大是多少。
解题思路:是图论中的一个结论,最多两个节点,所以枚举两条边就可以了。我简单的推了一下,2个点的情况肯定比3个点的优。
...
分类:
其他好文 时间:
2014-07-08 11:21:20
阅读次数:
296
2014.07.04 23:57简介: 这本教材中提到了一个概念,叫关节点(articulation point)。如果从某个无向图里去掉某个顶点以及这个顶点所有的边,如果此时图中连通分量的个数增加了,那么定义这个顶点为“关节点”。更通俗地解释,可以说如果拿走这个顶点,这幅图就破成了好几块,因此这....
分类:
编程语言 时间:
2014-07-06 16:28:12
阅读次数:
287