最短路径的O(ElgV)的解法。
使用邻接表存储图,使用堆操作选取下一个最小路径点。
本题的难度并不在最短路径本身这个算法,而是在于堆的操作:
1 使用双重指针操作堆的节点,可以省去直接复制操作堆节点,提高效率,并且这才是有效操作动态地址数据的方法,不用双重指针,我思考了下,觉得更加不好做。
2 使用一个数组记录当前顶点在堆中的位置,相当于一个hash表了,可以需要的时候,直接从表中查找表...
分类:
其他好文 时间:
2014-06-07 02:03:17
阅读次数:
214
最短路
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 28836 Accepted Submission(s): 12480
Problem Description
在每年的校赛里,所有进入决赛的同学都会获得一件很...
分类:
其他好文 时间:
2014-06-05 10:03:43
阅读次数:
192
最短路条数:
求一个图一共一几条最短路径,思路:先从终点跑一边最短路,记录终点到到所有点最短距离(d【i】),然后从起点出发,dfs 按d[i]走(必是最短路径),一句话:我到终点的最短路条数=我的所有孩子到终点的最短路条数之和,这样只需一遍即可。这不知道是不是叫记忆化搜索?
边不可重复最短路径条数:(最短路+建新图之最大流)
hdu3599题意:求1-->n最短路条数,所有路径边不可重复。思路:边不可重复??!!转为流量的为1 的话,求最大流啊(以后切记该方法,不可重复问题...
分类:
其他好文 时间:
2014-06-05 09:36:43
阅读次数:
237
http://acm.hdu.edu.cn/showproblem.php?pid=2544
入门级别 floyed和dijkstra都可以
//Dijkstra
#include
#include
#define N 105
#define inf 0xfffffff
int dis[N],map[N][N],vis[N],n;
void dijkstra()
{
int m,k...
分类:
其他好文 时间:
2014-06-05 05:39:32
阅读次数:
196
题目链接题意 :
要从1城市到n城市,求最短路是多少,从a城市到达b城市的路程,如果你到过c城市,则需要走p,否则走r长。思路 :
因为可以来回走,所以不能用单纯的最短路,可以用二维SPFA,状态压缩一下,第二维来记录状态,表示到过这个点的第几个状态。也可以用DFS,因为最多十个点,所以如果走某一个...
分类:
其他好文 时间:
2014-05-30 04:08:41
阅读次数:
279
题目链接题意 :
求从1城市到n城市的最短路。但是每条路有两个属性,一个是路长,一个是花费。要求在花费为K内,找到最短路。思路
:这个题好像有很多种做法,我用了BFS+优先队列。崔老师真是千年不变的SPFA啊,链接。还有一个神用了好几种方法分析,链接。用优先队列控制长度,保证每次加的都是最短的,每次...
分类:
其他好文 时间:
2014-05-30 01:54:32
阅读次数:
213
题意:所给数据中是否有负环? 没有负环的图中所有路径中最短的值思路:1. bellmanford
判断负环2.flodyWarshall 求所有定点的最短路径细节:1. bellmanford 算法时间复杂度为 o(n^3), 因为图的使用邻接矩阵存储的,
使用邻接表代码会容易理解些, 引用 wik...
分类:
其他好文 时间:
2014-05-29 20:41:30
阅读次数:
237
A*搜索算法(A Star Search
Algorithm)A*算法主要用于在二维平面上寻找两个点之间的最短路径。在从起始点到目标点的过程中有很多个状态空间,DFS和BFS没有任何启发策略所以穷举所有的状
态空间,不适合仅需对局部进行搜索的应用。启发式搜索的关键在于:当前节点在选择下一步节点的时候...
分类:
其他好文 时间:
2014-05-29 13:10:48
阅读次数:
227
问题描述
给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。 输入格式 第一行两个整数n,
m。 接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。 输出格式 共n-1行,第i行表示1号点到i+1号...
分类:
其他好文 时间:
2014-05-28 14:51:35
阅读次数:
231
问题描述
给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。 输入格式 第一行两个整数n,
m。 接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。 输出格式 共n-1行,第i行表示1号点到i+1号...
分类:
其他好文 时间:
2014-05-28 14:36:45
阅读次数:
248