再次使用强大的四边形优化dpf[i][j]=max(f[k][j-1]+w[k+1][i]) 其中f[i][j]表示前i个村落有j个邮电局,w[i][j]表示[i,j]区间上安装一个邮电局最短路径和其中w[i][j]邮电局必然是安装在(i+j)/2(中位数)的村落中,若(i+j)/2不为整数,则中....
分类:
其他好文 时间:
2014-08-02 04:00:12
阅读次数:
178
Floyd算法是一个经典的动态规划算法。用通俗的语言来描述的话,首先我们的目标是寻找从点i到点j的最短路径。从动态规划的角度看问题,我们需要为这个目标重新做一个诠释(这个诠释正是动态规划最富创造力的精华所在),floyd算法加入了这个概念 Ak(i,j):表示从i到j中途不经过索引比k大的点的最短路...
分类:
其他好文 时间:
2014-08-02 01:46:12
阅读次数:
183
倘若我们要在计算机上建立一个交通咨询系统则可以采用图的结构来表示实际的交通网络。其实现最基本的功能,求出任意两点间的最短路径,求最短路径的经典方法有很多种,最常用的便是迪杰斯特拉算法和佛洛依德(Floyd)算法,这篇文章就着重介绍Floyd算法。求两点之间的最短路径无外乎有两种情况,一种就是从一点直...
分类:
其他好文 时间:
2014-08-02 01:44:03
阅读次数:
299
正如我们所知道的,Floyd算法用于求最短路径。Floyd算法可以说是Warshall算法的扩展,三个for循环就可以解决问题,所以它的时间复杂度为O(n^3)。Floyd算法的基本思想如下:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点X到B。所以,我们...
分类:
其他好文 时间:
2014-08-02 01:43:52
阅读次数:
283
最短路径问题 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDescription给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其....
分类:
其他好文 时间:
2014-08-01 12:51:21
阅读次数:
237
题意:一些牛要去某一点参加聚会,然后再回到自己家,路是单向的,问花费时间最多的那头牛最少需要花费多长时间。
思路:从聚会地点返回,相当于是从某一点到其他各个点的最短路径。从牛的家中走到聚会地点,可以把路径反过来变成从聚会地点到各个点的最短路径,两个最短路径值加起来就是每头牛所花费的最小时间,找出最大的即可。
我用了两个邻接表存路径,其实这道题用邻接矩阵存更好做,矩阵横纵坐标翻转就把路径...
分类:
其他好文 时间:
2014-08-01 00:03:40
阅读次数:
269
1.poj 3026 Borg Maze()http://poj.org/problem?id=3026在一个迷宫里由S找到所有A(找到过的A可以当S来用)所用最短步 ,即s到a中所有最短路径的和bfs+prim 广搜+最小生成树 难点:通过图建立map[][]数组 2.poj 2049 ...
分类:
其他好文 时间:
2014-07-31 16:36:46
阅读次数:
252
Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其它全部节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但因为它遍历计算的节点非常多,所以效率低。 Dijkstra算法是非常有代表性的最短路算法,在....
分类:
其他好文 时间:
2014-07-31 16:33:06
阅读次数:
199
看了好久终于看懂了 ,首先你要知道 优先队列在这里的作用是什么。在Djsktra的算法中 我们需要有三个for其中有个for是要找到 连接中最小的点 并且返回该点 ,这里的优先队列把这个for循环替掉。typedef pair pii;priority_queue q; 这个优先队列是根据 pair...
分类:
其他好文 时间:
2014-07-31 09:38:25
阅读次数:
218
看了这些代码之后 总结了一下 其实就那三个for 循环 一:找与v有连接的点 。二:从这些连接的点找到最小,把他看成是下一次的v 。 三: 你要把有出现的那些边 更新掉 。 详解在代码里写出了 #include#include#includeusing namespace std ;#d...
分类:
其他好文 时间:
2014-07-31 09:34:55
阅读次数:
219