关于三个简单的图论算法prim,dijkstra和kruskal三个图论的算法,初学者容易将他们搞混,所以放在一起了。prim和kruskal是最小生成树(MST)的算法,dijkstra是单源最短路径的算法。prim最小生成树prim算法采用了贪心策略:把点分成两个集合,A为已被处理(已经在最小生...
分类:
其他好文 时间:
2014-07-12 00:34:01
阅读次数:
216
Dijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论...
分类:
其他好文 时间:
2014-07-12 00:23:03
阅读次数:
308
时间限制:0.25s空间限制:4M题意: 给出一个n个节点,m条边的图,每条边都有标记了编号为1,2,3三种颜色之一,现在求从1号节点到n号节点的一条最短路径的长度,要求该路径中相邻的边没有相同的颜色。Solution: 有限制条件的SPFA,要注意有时要形成环来改变路径颜色,才能到...
分类:
其他好文 时间:
2014-07-11 19:02:01
阅读次数:
199
题目大意: 题目会给你N个经纪人,样例给出的是第几个经纪人与其他经纪人之间的联系和散播需要的时间,问你从哪个经纪人开始传播是散发的谣言最快,以及算出所需要的时间,这里的时间是一条最短路径中所花费时间最少路径。如果存在某个经济人不在最短路中输出”disjoint“。(我没判断就过了,数据shui)解....
分类:
其他好文 时间:
2014-07-11 18:39:40
阅读次数:
205
题目链接:hdu 4849 Wow! Such City!
题目大意:有N个城市,给定计算两两城市距离的公式,然后求0到1~N-1的城市中,最短路径模掉M的最小值。
解题思路:先根据公式求出距离C矩阵,注意中间连乘3次的可能爆long long,然后用裸的dijstra算法求最短路。
#include
#include
#include
#include
using nam...
分类:
Web程序 时间:
2014-07-09 12:56:23
阅读次数:
231
模板
题意:给你一个图,1总是为根,每个边有单位价值,每个点有权重。
每条边的价值 = sum(后继节点权重)*边的单位价值。
求树的最小价值,即构成一棵树的n-1条边的最小价值。
算法:
1、因为每个边的价值都要乘以后来访问的节点的权重,而走到后来访问的点必经过这条边。
实际上总价值就是 到每个点的最短路径*这个点的权重。
2、但是这个题 数据量真的太大了,50000个点...
分类:
其他好文 时间:
2014-07-09 11:33:57
阅读次数:
273
2014.07.04 18:24简介: 给定一个有向图,你可以认为每条边长度都是1(所以叫无权值)。下面的算法可以求出从特定的起点到终点的最短路径长度。描述: 从起点出发,根据当前顶点出发的边进行广度优先搜索,直至找到终点即可。如果搜索结束了仍然没有找到终点,那么起点无法到达终点。实现: 1 /.....
分类:
编程语言 时间:
2014-07-06 19:15:17
阅读次数:
255
2014.07.04 18:32简介: 给定一个有向图,边的权值可能各不相同(不包含负权值)。给定一个起点s,找出起点到所有顶点的最短路径距离。描述: 这就是Dijkstra算法的用武之处了。 实际上,如果从无权值的情况出发,来思考带权最短路径问题的解法,那么应该只需要修改几行之前BFS的代码...
分类:
编程语言 时间:
2014-07-06 18:52:39
阅读次数:
255
2014.07.04 19:34简介: 给定一个带权图(有向无向皆可),找出每个顶点到其他所有顶点的最短距离。描述: 此处介绍O(n^3)级别的Floyd算法,只需要用三层循环的简单代码就完成所有最短距离的计算。唯一需要注意的,就是三层循环里i、j、k的摆放顺序。 代码非常简单,所以无需多作解...
分类:
编程语言 时间:
2014-07-06 18:47:25
阅读次数:
151