随笔分类 -  最短路

摘要:思路简单,就是建图然后调用dijkstra算法即可。直接上代码:/* * hdu2425/win.cpp * Created on: 2012-11-3 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue>#include <set&g 阅读全文
posted @ 2012-11-03 16:32 moonbay 阅读(140) 评论(0) 推荐(0)
摘要:就是建图,把题目描述的东东转换成一张图求最短路就行了,因为是随机询问,所以用floyd比较方便。不过打完之后一直WA,百思不得其解的情况下看了一下discuss,有人说得用long long,于是我马上改了交,果然过了……唉,以后看题还是得细心……/* * hdu1690/win.cpp * Created on: 2012-10-27 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime&g 阅读全文
posted @ 2012-10-27 21:17 moonbay 阅读(174) 评论(0) 推荐(0)
摘要:赤裸裸的,需要注意的是这题是无向图,有重边,且起点可能与终点相同,这些是容易WA的地方。/* * hdu2112/win.cpp * Created on: 2012-8-2 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue>#includ 阅读全文
posted @ 2012-08-02 12:09 moonbay 阅读(148) 评论(0) 推荐(0)
摘要:/* * hdu1869/win.cpp * Created on: 2012-7-31 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue>#include <set>#include <stack>#include 阅读全文
posted @ 2012-07-31 20:31 moonbay 阅读(127) 评论(0) 推荐(0)
摘要:直接上代码/* * hdu1596/win.cpp * Created on: 2011-12-5 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>using namespace std;typedef double typec;const int SIZE = 1005;cons 阅读全文
posted @ 2011-12-05 15:29 moonbay 阅读(152) 评论(0) 推荐(0)
摘要:这题题意好纠结,半天没看懂,后来打完过不了样例,让海峰读题,最后按他的思路打完了,居然在他之前AC,哈哈~读懂了题目还是挺简单的,首先求出所有点到终点的最短路,然后DP一下,就能求出路径条数。/* * hdu1142/linux.cpp * Created on: 2011-9-17 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>using namespace std;c 阅读全文
posted @ 2011-09-17 21:35 moonbay 阅读(137) 评论(0) 推荐(0)
摘要:题目很水,直接用Floyd即可/* * hdu3786/win.cpp * Created on: 2011-9-6 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>using namespace std;#define SIZE 100#define MAX 0x7fffffffint map[SIZE][SIZE];int N;void init() { int i, 阅读全文
posted @ 2011-09-07 12:22 moonbay 阅读(161) 评论(0) 推荐(0)
摘要:这题就是Floyd变形,只要理解了Floyd算法,题目还是不难的。不过我还是WA了一次,原理是在运行Floyd的时候,误加了两个判断,以为当i,j未被标记的时候,i到j的路径不必更新,其实这是错的,去掉以后就过了。/* * hdu3631/win.cpp * Created on: 2011-9-6 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>using namespa 阅读全文
posted @ 2011-09-06 09:23 moonbay 阅读(154) 评论(0) 推荐(0)
摘要:赤裸裸的最短路 阅读全文
posted @ 2011-08-03 21:01 moonbay 阅读(102) 评论(0) 推荐(0)
摘要:题意为有N个城市,每个城市用一个矩阵表示,如果三个矩阵A、B、C满足A*B=C,则A到C有一条长度为1的路径,问两个城市间的最短路。这题的最短路部分很简单,稍微麻烦的是矩阵处理。想了一下,觉得优化的矩阵运算不好打,就直接打了个最简单的,AC了,可见杭电OJ的测试数据还是很弱的。这题也WA了一次,原因是以为A*B=B,则A到B也有一条路径,测试表明测试数据中这种情况认为A到B是没有路径的。/* * hdu2807/win.c * Created on: 2011-7-23 * Author : ben */#include <stdio.h>#define SIZE 100#defi 阅读全文
posted @ 2011-07-23 16:00 moonbay 阅读(230) 评论(0) 推荐(0)
摘要:一看这题就很简单,可以打完了死活交不过,开始怀疑测试数据的问题,上网找别人AC的代码一看,原来就是输入建图的时候不同,恍然大悟,原来两个顶点间有可能是有多条边的,汗~~~~ 阅读全文
posted @ 2011-07-20 18:35 moonbay 阅读(116) 评论(0) 推荐(0)
摘要:#include <stdio.h>#define SIZE 100int map[SIZE][SIZE];int MAX = 0x7fffffff;int N, M, i, j, k, c;int S[SIZE];int D[SIZE];int dijistra() { for (i = 0; i < N; i++) { S[i] = 0; D[i] = map[0][i]; } S[0] = 1; D[0] = 0; int min; for (i = 1; i < N; i++) { min = MAX; int k = 0; for (j = 0; j < 阅读全文
posted @ 2011-07-19 14:24 moonbay 阅读(206) 评论(0) 推荐(1)