摘要: 这道题和1502有些像,不同的是,1502只要找出起点到各个点的最短路径,然后判断是不是相对最长路径就能AC;这道题除了要找出起点到各点的最短路,还要求得各点到起点的最短路,然后做个和,表示来自不同农场的牛需要走的总路程还有一个不同,本题给定的点较多,Floyd会超时,于是考虑采用Dijkstra。 1 #include<iostream> 2 using namespace std; 3 #define CLR(a) memset(a,0,sizeof(a)) 4 const int INF = 1 << 29; 5 int n, m, x, vis[1005], d 阅读全文
posted @ 2012-02-16 22:39 dgsrz 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 前天队里介绍了单源最短路径算法,一共涉及以下四种:Floyd-Warshall, Dijkstra, Bellman-Ford, SPFAFloyd 用来找出每对点之间的最短距离。需要一个邻接矩阵存储边。通过考虑最佳子路径实现找最短路径。算法实现:使用一个邻接矩阵存储边权值,两两之间能访问的必为一个有限的数,不能访问则为无穷大(用2^29代替)。注意自身和自身距离为0。对于一对顶点 u 和 v,看看是否存在一个断点 w 使得从 u 经过 w 到 v 比已知的路径更短(包含原始输入中从 u 直接到 v 的路程)。对所有顶点进行如上松弛操作,得到的结果是两点之间的最短路程,也可判断两点是否连通。以 阅读全文
posted @ 2012-02-16 22:13 dgsrz 阅读(249) 评论(0) 推荐(0) 编辑