分支限界法定义:采用BFS算法,并使用剪枝函数的算法称为分支界限法。 分支限界法解释:按广度优先的原则,有选择的在其child中进行扩展,从而舍弃不含有最优解的分支,不断重复这一过程,直到找到答案或者判定无解。 分支界限法常常用到优先队列来选择最佳扩展节点,有时也会用到普通队列,以先进先出为原则来进 ...
分类:
其他好文 时间:
2016-07-08 21:53:15
阅读次数:
369
Djkstra算法(单源最短路径) 算法的基本思想是:每次找到离源点(上面例子的源点就是 1 号顶点)最近的一个顶点,然后以该顶点为中心进行扩展,最终得到源点到其余所有点的最短路径。基本步骤如下: 将所有的顶点分为两部分:已知最短路程的顶点集合 P 和未知最短路径的顶点集合 Q。最开始,已知最短路径 ...
分类:
编程语言 时间:
2016-06-15 10:24:52
阅读次数:
248
本文总结了图的几种最短路径算法的实现:深度或广度优先搜索算法,弗洛伊德算法,迪杰斯特拉算法,Bellman-Ford算法 1),深度或广度优先搜索算法(解决单源最短路径)从起始结点开始访问所有的深度遍历路径或广度优先路径,则到达终点结点的路径有多条,取其中路径权值最短的一条则为最短路径。 下面是核心 ...
分类:
编程语言 时间:
2016-06-07 22:10:29
阅读次数:
511
本文总结了图的几种最短路径算法的实现:深度或广度优先搜索算法,弗洛伊德算法,迪杰斯特拉算法,Bellman-Ford算法
1),深度或广度优先搜索算法(解决单源最短路径)
从起始结点开始访问所有的深度遍历路径或广度优先路径,则到达终点结点的路径有多条,取其中路径权值最短的一条则为最短路径。
下面是核心代码:
void dfs(int cur, int dst){
/...
分类:
编程语言 时间:
2016-06-06 15:08:14
阅读次数:
276
题意是给出一个有向图 给出一定的边 可以求出边权 求单源最短路 如果<3 或者 达不到 输出问号 不然输出dis[v] 一开始耿直的写了一个dij交上去 还过了样例 然后wa掉 看了看题 发现其中有负权边 并且应该是可以达到负环的 比如3->1->2->3 所以<3是判断 这个点能否是负的 或者 它 ...
分类:
其他好文 时间:
2016-06-02 20:06:11
阅读次数:
167
题很简单 就是有向图中求给出的源点到其余所有点的最短路的和与其余所有点到源点的最短路之和 一开始以为dij对于正权图的单源最短路是最快的 写了一发邻接表的dij 结果超时 把所有的cin改成scanf 还是超时(过去并没有用cin的坏习惯..近两个星期才开始疯狂的使用cin..因为懒..) 后来想了 ...
分类:
其他好文 时间:
2016-06-01 21:14:18
阅读次数:
150
1、问题描述 给定带权有向图G =(V,E),其中每条边的权是非负实数。另外,还给定V中的一个顶点,称为源。现在要计算从源到所有其他各顶点的最短路长度。这里路的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。 2、Dijkstra算法 Dijkstra算法是解单源最短路径问题的贪心算法。 ...
分类:
其他好文 时间:
2016-05-26 10:13:03
阅读次数:
223
1、问题描述 给定带权有向图G =(V,E),其中每条边的权是非负实数。另外,还给定V中的一个顶点,称为源。现在要计算从源到所有其他各顶点的最短路长度。这里路的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。 2、Dijkstra算法 Dijkstra算法是解单源最短路径问题的贪心算法。 ...
分类:
其他好文 时间:
2016-05-26 09:57:10
阅读次数:
165
《算法导论》第二版中在讨论斐波那契堆之前还讨论了二项堆,但是第三版中已经把这块的内容放到思考题中,究极原因我想大概是二项堆只是个引子,目的是为了引出斐波那契堆,便于理解,而且许多经典的算法实现都是基于斐波那契堆,譬如计算最小生成树问题和寻找单源最短路径问题等,此时再把二项堆单独作为一章来讲显然没有必 ...
分类:
编程语言 时间:
2016-05-13 13:08:27
阅读次数:
260
http://acm.hdu.edu.cn/showproblem.php?pid=2066
分析:
题目要求输出草儿想去的城市的最短时间,就是 家->A(相邻城市)->B(几个中的任意一个) 的最短距离。
由于最终是从一个出发点到一个终点,仔细分析,不难得出这是个单源最短路问题(就是一个出发点,一个终点)。
所以可以运用dijkstra。
代码如下:
#include...
分类:
其他好文 时间:
2016-05-13 04:14:21
阅读次数:
219