算法思想:每次找到离源点最近的顶点,然后以该顶点为中心进行扩展,最终得到源点到其余所有点的最短路径.时间复杂度是O(N^2).
基本步骤:
将所有的顶点分为两部分,已知最短路程的顶点集合S和未知最短路径的顶点集合V. 最开始,已知最短路径在集合S中只有源点一个顶点,用book数组来标记哪些点在集合S中.设置源点p到自己的最短路径为0(即dis[p] = 0). 若存在有源点能直接到达的...
分类:
编程语言 时间:
2014-12-04 21:39:59
阅读次数:
269
题目大意:最短路。
思路:最短路。
贴一份比较高效的堆优化Dij模板吧。
CODE:
#include
#include
#include
#include
#define _MAX 1000010
#define MAX 10000010
using namespace std;
#define min(a,b) ((a) < (b) ? a:b)
lon...
分类:
其他好文 时间:
2014-12-04 21:38:44
阅读次数:
243
再开始前我们先普及一下简单的图论知识图的保存:1.邻接矩阵。 G[maxn][maxn];2.邻接表邻接表我们有两种方式(1)vector G[maxn];这个是之前就定义了图的大小了,再下面使用的时候就不用对图的大小进行申请了, 但是因为是直接申请了大小要对图进行初始化,因此可能在某些题目中这样使...
分类:
编程语言 时间:
2014-12-04 17:25:20
阅读次数:
275
最短路径问题,首先想到了贪心算法实现的dijkstra算法;这道题我用了链表的存储方式,其实用邻接矩阵也可以,主要为了练手,并且链表比矩阵要节约空间;
题目描述:
给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。
输入:
输入n,m,点的编号是1~n,然后是m行,每行4个数 ...
分类:
其他好文 时间:
2014-12-04 15:36:05
阅读次数:
165
枚举点暴力Dijkstra....
How Many Maos Does the Guanxi Worth
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others)
Total Submission(s): 96 Accepted Submission(s): 34...
分类:
其他好文 时间:
2014-12-04 12:17:17
阅读次数:
147
基本思想:最开始只允许经过1号顶点进行中转,接下来只允许经过1和2号顶点进行中转......允许经过1~n号所有顶点进行中转,求任意两点之间的最短路径. 用一句话概括就是:从 i 号顶点到 j 号顶点只经过前 k 号点的最短路径. 时间复杂度O(N^3).
Code:
#include
#include
#include
#define INF 999999
int main(int...
分类:
编程语言 时间:
2014-12-04 01:02:52
阅读次数:
217
数据结构课图作业之最短路。 1 #include 2 #include 3 using namespace std; 4 5 #define N 120 6 #define INF 0x3f3f3f3f 7 #define _clr(x, y) memset(x, y, sizeof(x)) ...
分类:
编程语言 时间:
2014-12-03 14:15:24
阅读次数:
112
2263 题目意思是求起点城市到终点城市的途径中的最大载重量,可以用Dijkstra或者floyd 来解决,我是用的floyd 感觉更直观 因为只需要将递推式改成w[i][j] = Max(w[i][j],Min(w[i][k],w[k][j]));便可得到答案,而且floyd写法比较简单但是复杂度...
分类:
其他好文 时间:
2014-12-01 22:11:39
阅读次数:
284
蒟蒻是此题第500个AC的233毛线,一眼看上去很高端,还有个什么复杂的式子。。。后来发现。。。是。。。Floyd水题d[i][j]表示i、j之间的最短距离,cnt[i][j]表示i、j之间最短距离的条数于是运用乘法原理更新cnt[i][j]即可 1 /***********************...
分类:
其他好文 时间:
2014-11-27 16:01:59
阅读次数:
200