floyd
deepquiet
这个作者很懒,什么都没留下…
展开
-
uva10099
题意:有一个旅游团现在去出游玩,现在有n个城市,m条路。由于每一条路上面规定了最多能够通过的人数,现在想问这个旅游团人数已知的情况下最少需要运送几趟思路:求全局沿路权值最大,并记录最大权值这条路上的最小权值,用floyd代码:#include#include#includeusing namespace std;const int N = 105;int n,原创 2016-03-11 14:47:27 · 196 阅读 · 0 评论 -
uva208
题意:从1出发,到达给的点有几种走法所有的走法显然是需要回朔来求的,为避免超时,我们要剪枝那么最重要的就是用到的flo,这个方法可以判断通路(即当前点i是否可达终点),如果不可达就剪枝那么没达到终点,我们就把路径输出,路径存于一个数组中代码:#include#include#includeusing namespace std;const int mmax = 0x原创 2016-05-12 19:42:16 · 491 阅读 · 0 评论 -
uva10801
题意:给出每个电梯每层用时以及可到达的楼,每换一个电梯就要加60s思路:本题用到floyd,权值要自己算出来(add函数)代码:#include#include#include#include#includeusing namespace std;const int maxn = 105;const int inf = 10005;int n, k, t[max原创 2016-07-22 15:18:49 · 476 阅读 · 0 评论 -
uva10099+uvauva10048
题意:一个求最小的最大值,一个求最大的最小值,思路一样思路:floyd代码:uva10048:#include#include#include#includeusing namespace std;int c, s, q;const int inf = 0x3f3f3f3f;int mmap[105][105];void floyd() { for(int i=1原创 2016-07-22 15:26:43 · 283 阅读 · 0 评论 -
uva10803
题意:求给的点之间任意连点之间的最远距离,直接相邻的点的距离如果超过10视为不可达思路:就是floyd代码:#include#include#include#include#includeusing namespace std;const int maxn = 1200;const double inf = 10000000000.0; double f[max原创 2016-07-22 16:55:05 · 299 阅读 · 0 评论 -
uva10269
题意:1-n是村庄,n+1-m+1是城堡,要从1-n+m,问最短时间思路:首先要为使用魔法做准备,这就需要求得沿路不经过城堡的所有路径(保证在最短状态),这就用到了floyd,然后是用spfa求用到魔法的最小时间f[i][j]表示剩余i次到达j用时如果不使用魔法能的到更短时间就不使用魔法如果使用了魔法,那么首先路径必须代码:#include#include#in原创 2016-07-27 18:57:41 · 258 阅读 · 0 评论 -
uva567
题意:求两点之间的最短距离,floyd模板代码:#include#include#include#includeusing namespace std;int mmap[25][25]; void flo() { for(int i=1; i<=20; i++) for(int j=1; j<=20; j++) for(int z=1; z<=20; z++)原创 2016-07-20 11:18:18 · 270 阅读 · 0 评论 -
Audiophobia uva10048
题意:从a点到b点, 找到一条路径,使得这条路径上的所有噪音中最大的值是所有路径中最小的, 这个噪音值便是要求的。思路:folyed, 枚举的第一层为中间的点体现了dp的无后效性这是最大值最小的问题,所以在路径上只要存储沿路中的最大值就好代码:#include#include#includeusing namespace std;int flo[105][105原创 2016-03-11 14:40:07 · 248 阅读 · 0 评论