floyd
deepquiet
这个作者很懒,什么都没留下…
展开
-
uva10099
题意: 有一个旅游团现在去出游玩,现在有n个城市,m条路。由于每一条路上面规定了最多能够通过的人数,现在想问这个旅游团人数已知的情况下最少需要运送几趟 思路: 求全局沿路权值最大,并记录最大权值这条路上的最小权值,用floyd 代码: #include #include #include using namespace std; const int N = 105; int n,原创 2016-03-11 14:47:27 · 207 阅读 · 0 评论 -
uva208
题意: 从1出发,到达给的点有几种走法 所有的走法显然是需要回朔来求的,为避免超时,我们要剪枝 那么最重要的就是用到的flo,这个方法可以判断通路(即当前点i是否可达终点),如果不可达就剪枝 那么没达到终点,我们就把路径输出,路径存于一个数组中 代码: #include #include #include using namespace std; const int mmax = 0x原创 2016-05-12 19:42:16 · 503 阅读 · 0 评论 -
uva10801
题意: 给出每个电梯每层用时以及可到达的楼,每换一个电梯就要加60s 思路: 本题用到floyd,权值要自己算出来(add函数) 代码: #include #include #include #include #include using namespace std; const int maxn = 105; const int inf = 10005; int n, k, t[max原创 2016-07-22 15:18:49 · 488 阅读 · 0 评论 -
uva10099+uvauva10048
题意:一个求最小的最大值,一个求最大的最小值,思路一样 思路:floyd 代码: uva10048: #include #include #include #include using 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 · 296 阅读 · 0 评论 -
uva10803
题意: 求给的点之间任意连点之间的最远距离,直接相邻的点的距离如果超过10视为不可达 思路: 就是floyd 代码: #include #include #include #include #include using namespace std; const int maxn = 1200; const double inf = 10000000000.0; double f[max原创 2016-07-22 16:55:05 · 303 阅读 · 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 · 269 阅读 · 0 评论 -
uva567
题意:求两点之间的最短距离,floyd模板 代码: #include #include #include #include using 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 · 284 阅读 · 0 评论 -
Audiophobia uva10048
题意: 从a点到b点, 找到一条路径,使得这条路径上的所有噪音中最大的值是所有路径中最小的, 这个噪音值便是要求的。 思路: folyed, 枚举的第一层为中间的点体现了dp的无后效性 这是最大值最小的问题,所以在路径上只要存储沿路中的最大值就好 代码: #include #include #include using namespace std; int flo[105][105原创 2016-03-11 14:40:07 · 261 阅读 · 0 评论